Как организовать ЧПУ на сайте с каталогом, чтобы ссылки вида mysite.ru/razdel преобразовывались в mysite.ru/index.php?a=razdel, ссылки вида mysite.ru/razdel/podrazdel в mysite.ru/index.php?a=razdel_podrazdel, а ссылки вида mysite.ru/razdel/podrazdel/tovar в mysite.ru/index.php?a=razdel_podrazdel_tovar? У меня есть правило RewriteRule для 1 уровня, но проблемы с 2 и 3 уровнем. Помогите, пожалуйста.
Вы можете использовать следующие правила RewriteRule для достижения желаемого результата: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/?$ index.php?a=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)/?$ index.php?a=$1_$2 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?a=$1_$2_$3 [L] Сначала мы проверяем, существуют ли файлы или каталоги с таким же именем, что и запрашиваемый URI. Если они не существуют, то перенаправляем запрос в index.php и передаем параметр "a" соответствующим образом. Надеюсь, это поможет вам настроить правила RewriteRule для вашего многоуровневого сайта с каталогами.