Приветствую.Подскажите пожалуйста правильные выражения для создания автоматических субдоменов.
Принцип такой:domain.com/
|--site1/
| |----index.html
|--site2/
| |----index.html
|--index.htmlТо есть, существует domain.com. Хочется сделать так, чтобы, создавая каталоги внутри него, они автоматически становились бы поддоменами. То есть, чтобы можно было зайти как на http://(www.)domain.com/site1 и http://(www.)domain.com/site2, так и на http://(www.)site1.domain.com/ и http://(www.)site1.domain.com/.
Накопал множество документации. Есть даже весьма похожие на эту ситуацию. Но всё равно я что-то не могу составить RewriteCond и RewriteRule :(
Да. Как я прочитал, это делается с помощью mod_rewrite.
В DNS добавил А-запись *.domain.com. В httpd.conf в разделе <VirtualHost> в ServerAlias добавил *.domain.com. Далее в корне, т.е. внутри domain.com создал .htaccess для mod_rewrite, но никак не въеду :( Подскажите пожалуйста.
Принцип даже понятен. "Те, кто запрашивает http://(www.)site1.domain.com/, должны перенаправляться на http://(www.)domain.com/site1/, но адрес в браузере не должен добавлять ../site1/ к http://(www.)site1.domain.com/".
То есть, запросили http://(www.)site1.domain.com/index.html, и он должен идти в http://(www.)domain.com/site1/index.html, в URL показывая http://(www.)site1.domain.com/index.html. Таким же образом надо проделывать и со всеми другими каталогами внутри domain.com.
Подскажите, правильно ли я понимаю? И подскажите, как это реализовать, пожалуйста?
У меня написаны рег. выражения видаRewriteCond %{HTTP_HOST} ^.*\.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/$1При нём, при запросе http://domain.com/site1/ показывает страницу. А при запросе http://site1.domain.com/ идёт
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
То идёт тот же Internal Server Error. Чувствую, я где-то близок.
Изменил на такое:RewriteCond %{HTTP_HOST} ^.+\.domain.com$
RewriteRule ^(.*)$ http://domain.com/%{HTTP_HOST}$1Теперь при запросе http://site1.domain.com/ получаю то же самое, что и при запросе http://domain.com/site1.domain.com/. То биш, работает.
Теперь возникли такие вещи:
1. Не хотелось бы показывать изменение в адресной строке. Чтобы http://site1.domain.com/ не заменяло на http://domain.com/site1.domain.com/ при обработке. Надо как бы оставить http://site1.domain.com/ в строке.
2. При этом виде .htaccess нужно создавать каталоги вида site1.domain.com, а использовать (и создавать впредь) текущие site1, site2, ... siten.
Дело в том, что в текущем домене уже есть не один каталог, как раз все вида site1. Можно конечно скрипт написать, наверное, для переименования всех каталогов, но ведь наверно можно изменить рег. выражение.
Создал такое содержание .htaccess:RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/(.+)
RewriteRule ^(.*) %{HTTP_HOST}/$1
RewriteRule ^www\.(.*)\.domain\.com(.*) /$1$2Практически то, что нужно. Но рано я радоваться стал.
Погонял этот .htacces и выяснил, что это работает лишь для index.html, то есть, запрос http://site1.domain.com/index.html работает, то есть мой текущий .htaccess обрабатывает только запросы к индексу. А запрос http://site1.domain.com/page.html не работает.Как тут быть?