Назад | Перейти на главную страницу

Перезапись Apache с несколькими правилами

Я пытаюсь создать пятиуровневую иерархию с mod_rewrite. Это то, что я собрал на данный момент. Он работает на последних двух уровнях (первое и второе правило), но не после этого. Любая помощь будет принята с благодарностью.

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4&product=$5 [C]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4 [C] 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3 [C]
RewriteRule ^([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2 [C] 
RewriteRule ^([^/]*)$ /mr/index.php?product_group=$1 [L]

Я не серверный техник. Я разработчик и просто не могу в этом разобраться. Каждое из этих правил отлично работает само по себе. Мне нужно, чтобы правила работали от одного до пятого уровня и на каждом промежуточном этапе. Мне нужна детализированная навигация, удобная для SEO.

Похоже, вы связали все правила вместе с [C] флаг. Видеть документация для объяснения их значений. Ты наверное хочешь [L] вместо "последний".

Также стоит отметить, что правила будут выполняться до тех пор, пока URL-адрес больше не изменится; поэтому ваше предпоследнее правило, скорее всего, создаст цикл перезаписи, если у вас нет правила, аналогичного этому:

RewriteRule ^/mr/index.php$ - [L]

Редактировать: Для ясности это то, что я предлагаю в качестве отправной точки. Вы можете получить некоторое представление о ведение журнала предоставлено mod_rewrite.

RewriteRule ^mr/index.php$ - [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4&product=$5 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$         /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$                 /mr/index.php?product_group=$1&product_family=$2&product_category=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/?$                         /mr/index.php?product_group=$1&product_family=$2 [L]
RewriteRule ^([^/]*)/?$                                 /mr/index.php?product_group=$1 [L]