mod_rewrite: амперсенд в URL портит разбивку

lorien

Новичок
mod_rewrite: амперсенд в URL портит разбивку

Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/?([^/]+)?" "bin/rewrite/cat.php?cat1=$1&cat2=$2" [L]
Вот моё правило. Я так эмулирую виртуальные директорий с глубиной 1 или 2.

Если вызвать такой путь: /test1/test2&foo
То mod_rewrite вызывает конечный скрипт с такими параметрами: ?cat1=test1&cat2=test2&foo

Вопрос: как побороть амперсэнд?

-~{}~ 14.12.05 13:43:

Я придумал кривой хак, но мне он не нравится.
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)&(.*) $1\%26$2

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/?([^/]+)?" "bin/rewrite/cat.php?cat1=$1&cat2=$2" [L]
-~{}~ 16.12.05 13:01:

Хм...что-то у меня монолог какой-то %-)
Короче, почитав дискуссию на dklab.ru по поводу mod_rewrite,решил разбивать URI непосредственно скриптом, а не регекспами mod_rewrite'а. В следствии чего правило сократилось до
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^.+$" "bin/rewrite/cat.php" [L]
:)
 
Сверху