htaccess указать суб-домен в папку - PullRequest
2 голосов
/ 14 июня 2011

Здравствуйте, как я могу указать некоторый поддомен на какую-то папку через htaccess.

Я использовал это, чтобы указать, и это работает, но я не могу заставить его работать на другой поддомен ..

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some1\.example.org
RewriteRule ^(.*)$ /some1_folder/index.php/$1
RewriteRule ^some1$ /some1_folder/index.php/$1

http://some1.example.org/Content => http://example.org/some1/index.php/Content

Если я сделаю это:

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some1\.example.org
RewriteRule ^(.*)$ /some1_folder/index.php/$1
RewriteRule ^some1$ /some1_folder/index.php/$1

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some2\.example.org
RewriteRule ^(.*)$ /some2_folder/index.php/$1
RewriteRule ^some2$ /some2_folder/index.php/$1

Я получаю внутреннюю ошибку 500.

Также, как я могу также указать все несуществующие домены на какую-то папку (foo.example.org => www.example.org).

1 Ответ

6 голосов
/ 14 июня 2011

Создайте единый набор правил для всех поддоменов, используя %1 в RewriteRule, чтобы получить значение в скобках из предыдущего RewriteCond.

RewriteCond %{HTTP_HOST} !^www\.example\.org
RewriteCond %{HTTP_HOST} ^(.*)\.example\.org
RewriteRule ^(.*)$ http://www.example.org/%1/index.php/$1

Чтобы перенаправить все несуществующие поддомены в домен,создайте универсальный блок VirtualHost в конце файла конфигурации виртуального хоста, содержащего ServerAlias * для соответствия любым неопределенным доменам, и RewriteRule, который перенаправляет все запросы в домен, который вы хотите использовать по умолчанию.

...