htaccess указывает поддомен в папку

#.htaccess #subdomain #point

#.htaccess #поддомен #точка

Вопрос:

Здравствуйте, как я могу указать некоторый поддомен на некоторую папку через 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:

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

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

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