Регулярное выражение mod_rewrite для субдомена?

Есть домены en.auto.lc, auto.lc, en.auto.mstarproject.com, auto.mstarproject.com


Нужно, чтобы параметр «en» передавался в QUERY_STRING на сервер, желательно. Можно весь HTTP_HOST передавать, в пхп я разрулю этот параметр.


Ковыряюсь, все никак не получается. Вот примерно, что нужно:
RewriteCond %{HTTP_HOST} ^en\.auto\.(.*)$<br/>
RewriteCond !%{QUERY_STRING} (.*)locale_subdomain(.*)<br/>
RewriteRule ^(.*)$ /$1&locale_subdomain=%{HTTP_HOST}<br/>



Мое правило не работает, понимаю почему. Ковыряюсь, не могу сделать так, чтобы работало.
  • Вопрос задан
  • 2899 просмотров
Пригласить эксперта
Ответы на вопрос 5
DmitryKuzmenkov
@DmitryKuzmenkov
Стоит просто изменить условия рерайта с QUERY_STRING на HTTP_HOST:
RewriteCond %{HTTP_HOST} ^(en)\.auto\..+$
RewriteRule ^(.*)$ /$1&locale_subdomain=%{HTTP_HOST}
Ответ написан
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Так у вас хост и так в php окажется в $_SERVER, если домены на одну папку настроены — а дальше разруливайте как надо.
Ответ написан
@himik
а не проще это на уровне роутера фрейворка разрулить?
Ответ написан
mstarrr
@mstarrr Автор вопроса
Вот так еще получилось, только как-то длинно перечислять все папки, что есть на сервере и могут потенциально появится:
RewriteCond %{REQUEST_URI} !^/[^\/]+.php
RewriteCond %{REQUEST_URI} !^/[^\/]+.xls
RewriteCond %{REQUEST_URI} !^/image/
RewriteCond %{REQUEST_URI} !^/imbbank/
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/mpanel/
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_URI} !^/css/
RewriteCond %{REQUEST_URI} !^/libp/
RewriteCond %{REQUEST_URI} !^/single/
RewriteCond %{HTTP_HOST} ^en\.auto\.(.*)$
RewriteCond %{QUERY_STRING} !(.*)locale(.*)
RewriteRule ^(.*)$ /?locale=en&%{QUERY_STRING}
Ответ написан
Комментировать
mstarrr
@mstarrr Автор вопроса
Во, похоже таки допилил:
RewriteCond %{REQUEST_URI} !^/[^\/]+.(.*)
RewriteCond %{HTTP_HOST} ^en\.auto\.(.*)$
RewriteCond %{QUERY_STRING} !(.*)locale(.*)
RewriteRule ^(.*)$ /?locale=en&%{QUERY_STRING}


как такой вариант, прокатит?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы