alexhemp
Новичок
Порядок выполнения RewriteRule
Имеется Apache 2.0.59
В существующий проект нужно добавить фичу
Роутинг запросов и поддержка ЧПУ сделана на mod_rewrite
Клиент хочет добавить фичу, если на каталог товаров ссылаются произвольной строкой - попытаться ее разобрать и идентифицировать с каталогом товаром, типа
/toyota/corolla/1993/index.html - т.е. все тойоты 1993 года.
Хочется это обработать в скрипте, ибо вариантов масса, хочется просто сопоставлять REQUEST_URI каталогу товаров.
Вот часть правил в .htaccess
Добавляю строку в конец списка правил:
RewriteRule ^ cat.php [L,NC,NS]
Итог - все запросы обрабатываются этим правилом, хотя у всех предыдущих стоят флаги L,NC,NS
Как бы все необработанные предыдущими правилами запросы обработать одним скриптом, но если есть правило выше - сработать должно оно.
В документации написано что обрабатываются правила сверху-вниз..., я немного обескуражен...
-~{}~ 20.07.07 01:55:
Включил RewriteLog - то что там увидел, меня потрясло...
Апач плюет на флаг L и обрабатывает трансформированный адрес снова через всю цепочку... :-(
Как-бы от этого избавится...
Имеется Apache 2.0.59
В существующий проект нужно добавить фичу
Роутинг запросов и поддержка ЧПУ сделана на mod_rewrite
Клиент хочет добавить фичу, если на каталог товаров ссылаются произвольной строкой - попытаться ее разобрать и идентифицировать с каталогом товаром, типа
/toyota/corolla/1993/index.html - т.е. все тойоты 1993 года.
Хочется это обработать в скрипте, ибо вариантов масса, хочется просто сопоставлять REQUEST_URI каталогу товаров.
Вот часть правил в .htaccess
Код:
RewriteEngine on
RewriteRule ^index\.html$ index.php? [L,NC,NS]
...
RewriteRule ^search\.html$ search.php?%{QUERY_STRING} [L,NC,NS]
RewriteRule ^search/page([0-9]+)\.html$ search.php?page=$1&%{QUERY_STRING} [L,NC,NS]
RewriteRule ^files/([0-9]+)\.([a-z]+)$ download.php?id=$1 [L,NC,NS]
RewriteRule ^([.a-zA-Z0-9_-]+)\.html$ pages.php?key=$1 [L,NC,NS]
Добавляю строку в конец списка правил:
RewriteRule ^ cat.php [L,NC,NS]
Итог - все запросы обрабатываются этим правилом, хотя у всех предыдущих стоят флаги L,NC,NS
Как бы все необработанные предыдущими правилами запросы обработать одним скриптом, но если есть правило выше - сработать должно оно.
В документации написано что обрабатываются правила сверху-вниз..., я немного обескуражен...
-~{}~ 20.07.07 01:55:
Включил RewriteLog - то что там увидел, меня потрясло...
Апач плюет на флаг L и обрабатывает трансформированный адрес снова через всю цепочку... :-(
Как-бы от этого избавится...