Apache переписывается на основе субдомена
Я пытаюсь перенаправить запросы для подстановочного домена в подкаталог.
то есть. 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$
Ответы
Ответ 1
Вам следует взглянуть на Руководство по перезаписи URL из документации apache.
Следующее не проверено, но оно должно быть трюком:
RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$ http://blah.domain.com/%1/$1 [L,R]
Это работает только в том случае, если субдомен не содержит точек. В противном случае вам придется изменить Regexp в RewriteCond, чтобы соответствовать любому персонажу, который все еще должен работать из-за привязки, но это, безусловно, кажется более безопасным.
Ответ 2
Попробуйте следующее:
RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]
@pilif (см. комментарий): Хорошо, это правда. Я просто скопировал .htaccess, который я использую в одном из моих проектов. Угадайте, что у него есть несколько иной подход:)
Ответ 3
@Сэм
ваша строка RewriteCond неверна. Расширение переменной запускается с помощью%, а не $.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
^
который должен сделать трюк