Как настроить RewriteRule для многоуровневого каталога на сайте?
Есть простой сайт на чистом html/css. Использую php только для include меняющегося контента в зависимости от требуемой страницы. На сайте есть каталог с несколькими уровнями. Хочу организовать ЧПУ, но не получается (
1 уровень: нужно чтобы ссылка mysite.ru/razdel преобразовывалась в mysite.ru/index.php?a=razdel
С этим проблем нет:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?a=$1
2 уровень: ссылки вида mysite.ru/razdel/podrazdel в ссылку mysite.ru/index.php?a=razdel_podrazdel
3 уровень: ссылки вида mysite.ru/razdel/podrazdel/tovar в ссылку mysite.ru/index.php?a=razdel_podrazdel_tovar
И вот здесь у меня затык.
Пробовал так:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?a=$1
RewriteRule ^(.*)/(.*)$ index.php?a=$1_$2
RewriteRule ^(.*)/(.*)/(.*)$ index.php?a=$1_$2_$3
2 и 3 уровень не работает, подставляется заглушка.
Можно убрать RewriteRule 1 уровня, тогда заработают 2 и 3 уровень, а на 1-ый будет выдавать УРЛ НОТ ФАУНД (оно и понятно).
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)/(.*)$ index.php?a=$1_$2_$3 [L]
RewriteRule ^(.*)/(.*)$ index.php?a=$1_$2
И вот какой день уже курю гугл, но толи я неправильные запросы ищу, толи никому этого делать никгда не нужно было — инфы найти не могу.
А чего не все направлять в index? RewriteRule ^(.*)$ index.php
А в PHP потом анализировать, что имеется в $_SERVER['REQUEST_URI'].
Кодом уже любой уровень вложенности можно распарсить и дополнить любыми нюансами.