#.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, который перенаправляет все запросы в домен, который вы хотите использовать по умолчанию.