#.htaccess #rewrite
#.htaccess #переписать
Вопрос:
Я хочу перенаправить этот URL-адрес с помощью .htaccess (linux / apache)..
Я хочу сохранить «как есть» все вызовы для поддомена www следующим образом
www.example.com/index.php
www.example.com/test.php?id=1amp;name=a
www.example.com/whatever.php?whateverurl=xxxx
но я хочу перенаправить все URL-адреса с подстановочными знаками, подобные этому, с поддоменом в качестве дополнительной переменной на текущие неограниченные переменные URL-адреса
например
xxx.example.com -> example.com/?subdomain=xxx
yyy.example.com/index.php -> example.com/index.php?subdomain=yyy
whatever.example.com/test.php?var=1 -> example.com/test.php?subdomain=whateveramp;var=1
whatever.example.com/whatever.php?var1=1amp;var2=2 -> example.com/whatever.php?subdomain=whateveramp;var1=1amp;var2=2
возможно ли это?
Спасибо
Ответ №1:
После настройки подстановочной DNS-записи вы должны создать свой .htaccess
файл:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)??(.*)?$ $1?host=%{HTTP_HOST}amp;%{QUERY_STRING} [L] [L]
Это правило работает, хотя оно предоставит вам весь хост, а не только поддомен, который вам придется анализировать в вашем PHP.
Комментарии:
1. Рад помочь, извините, это было не идеально. Однако я понял
RewriteCond
, что строка должна бытьRewriteCond %{HTTP_HOST} !^www.example.com$
Ответ №2:
Спасибо за ваш ответ
похоже, это правило работает
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^.] ).example.com$ [NC]
RewriteRule ^/?(.*)$ $1?subdomain=%1 [QSA,L,NE]
на время без проблем …
еще раз спасибо за ваш ответ
С наилучшими пожеланиями
Вангелис