Перезапись Apache на основе поддомена [закрыто]
-
09-06-2019 - |
Вопрос
Я пытаюсь перенаправить запросы на подстановочный домен в подкаталог.
т.е. something.blah.domain.com
--> blah.domain.com/something
Я не знаю, как заставить имя поддомена использоваться в правиле перезаписи.
Окончательное решение:
RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]
Или , как указал пилиф
RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
Решение
Вам следует взглянуть на Руководство по переписыванию URL-адресов из документации apache.
Следующее не проверено, но оно должно сработать:
RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$ http://blah.domain.com/%1/$1 [L,R]
Это работает только в том случае, если поддомен не содержит точек.В противном случае вам пришлось бы изменить регулярное выражение в RewriteCond, чтобы оно соответствовало любому символу, который все еще должен работать из-за привязки, но это, безусловно, безопаснее.
Другие советы
Попробуй это:
RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]
@pilif (см. комментарий):Ладно, это правда.Я только что скопировал файл .htaccess, который я использую в одном из своих проектов.Думаю, у него немного другой подход :)
@Сэм
ваша переписанная вторая строка неверна.Расширение переменной запускается с помощью %, а не $ .
RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
^
это должно сработать