Последний рецепт на http://wiki.apache.org/httpd/RewriteQueryString - это место для старта. В конкретном случае, который вы упомянули выше, вы хотели бы сделать что-то вроде:
RewriteRule ^/?([^\]+)/([^\]+)/([^\]+)/? /?platform=$1&setfilter=$2&dates=$3
Однако есть две довольно очевидные проблемы с этим решением. Это:
как мы можем сопоставить "цену" с "1" и "следующую неделю" с "2"? Возможно, это то, что ваш обработчик / скрипт / все, что нужно сделать достаточно умным, чтобы сделать
Другие URI на вашем сайте (изображения, css, js и т. Д.) Также могут быть перехвачены этим набором правил, что может привести к поломке.
Оба эти условия могут быть решены с помощью:
- Сделать скрипт достаточно умным для обработки аргументов
и
- Не используйте mod_rewrite вообще. Вместо этого используйте:
FallbackResource /index.php
(или как называется ваш корневой обработчик / скрипт), и этот скрипт / обработчик напрямую управляет PATH_INFO интеллектуально.
Помните, что самое важное в mod_rewrite - это знать, когда его избегать.