Вопросик по mod_rewrite

SunDrop
На сайте с 28.12.2005
Offline
34
530

Есть ряд правил для mod_rewrite.

Вид правил следующий:


RewriteRule ^(.*)-info-(.*).html$ info.php?info_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-index-(.*).html$ index.php?index_id=$2&%{QUERY_STRING}
и.т.д.

Т.е. видим, что на сайт у нас несколько точек входа! (а не только index.php)

Необходимо сделать следующее:

после применения вышеуказанных правил, добавить следующий набор

Если %{HTTP_HOST} начинается с ([ru|en|ua|it])\.my_host\.com, сделать переброску на my_host.com + старая %{QUERY_STRING} (если таковая имеется) + lang=$1

Т.е. в конечном итоге должны получить следующее:


было: http://ru.my_host.com/test-info-15.html?sort=desc
отдается на выполнению скрипту в my_host.com в виде
/info.php?info_id=15&sort=desc&lang=ru

Надеюсь понятно объяснил?

Кто подскажет как сформировать RewriteCond и RewriteRule ?

Заранее спасибо

В 20 лет он знал 9 операционных систем и 15 языков программирования, но ни одной женщины
SunDrop
На сайте с 28.12.2005
Offline
34
#1

А решается это, например, так:


# Сначала задаем правила переброски языкового поддомена
RewriteCond %{HTTP_HOST} ^([a-z]{2})\.my_host\.com
RewriteRule ^(.*\.php) $1?lang=%1 [QSA]
# Затем все остальные правила
RewriteRule ^(.*)-info-(.*).html$ info.php?info_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-index-(.*).html$ index.php?index_id=$2&%{QUERY_STRING}
и.т.д.

Спасибо всем кто подсказывал за помощь.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий