lorien
Новичок
mod_rewrite: амперсенд в URL портит разбивку
Вот моё правило. Я так эмулирую виртуальные директорий с глубиной 1 или 2.
Если вызвать такой путь: /test1/test2&foo
То mod_rewrite вызывает конечный скрипт с такими параметрами: ?cat1=test1&cat2=test2&foo
Вопрос: как побороть амперсэнд?
-~{}~ 14.12.05 13:43:
Я придумал кривой хак, но мне он не нравится.
-~{}~ 16.12.05 13:01:
Хм...что-то у меня монолог какой-то %-)
Короче, почитав дискуссию на dklab.ru по поводу mod_rewrite,решил разбивать URI непосредственно скриптом, а не регекспами mod_rewrite'а. В следствии чего правило сократилось до

Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^([^/]+)/?([^/]+)?" "bin/rewrite/cat.php?cat1=$1&cat2=$2" [L]
Если вызвать такой путь: /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]
Хм...что-то у меня монолог какой-то %-)
Короче, почитав дискуссию на dklab.ru по поводу mod_rewrite,решил разбивать URI непосредственно скриптом, а не регекспами mod_rewrite'а. В следствии чего правило сократилось до
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^.+$" "bin/rewrite/cat.php" [L]
