поддомен .htaccess в качестве параметра файла со всеми переменными

#.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]
 

на время без проблем …

еще раз спасибо за ваш ответ

С наилучшими пожеланиями

Вангелис