Перезапись Apache на основе поддомена [закрыто]

StackOverflow https://stackoverflow.com/questions/49500

  •  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$
            ^

это должно сработать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top