Столкнулся с проблемой реализации условия для modrewrite.
Задача: Если первый элемент адреса URL является названием города из списка городов, перенаправить запрос типа:
/city_name/category/subcategory/...etc
на
/category/subcategory/...etc/?city=city_name
Это хорошо работает, если написать такой код в .htaccess
RewriteCond %{REQUEST_URI} ^/(bucuresti|verona|sofia)/
RewriteRule ^([a-z0-9-]+)/(.+)$ /$2?region=$1 [R,L]
Однако, список городов довольно громоздкий (более 3 тыс.), поэтому я решил пойти другим путем...
Я хочу перенаправлять ВСЕ запросы, за исключением тех, что не являются городами (список таковых значительно короче)... поэтому я попытался написать так:
RewriteCond %{REQUEST_URI} !^/(help|contacts|about)/
RewriteRule ^([a-z0-9-]+)/(.+)$ /$2?region=$1 [R,L]
(что по моему мнению, должно было работать так же, ибо все, что я поменял - поставил НЕ (знак !) перед списком)...
Но работать "как надо" не хочет :(
Почему-то "видит" только два последних параметра, например
/verona/cat/subcat редиректит на
/subcat?region=cat, чем вводит меня в ступор... Кто может подсказать?