Как кодировать специальные символы с помощью mod_rewrite и Apache?

Я не уверен, что понимаю, о escape чем вы спрашиваете, но флаг rewriteengine NE (noescape) в директиве Apache escaping RewriteRule может вас заинтересовать. По rewritecond сути, он не позволяет mod_rewrite автоматически rewritemap экранировать специальные escape символы в предоставленном unescape вами шаблоне подстановки. Пример, приведенный apache в документации Apache 2.2:

RewriteRule /foo/(.*) /bar/arg=P1\%3d$1 [R,NE]

, который rewritemap превратит, например, /foo/zed в перенаправление apache на /bar/arg=P1%3dzed, так что скрипт /bar затем escape увидит параметр запроса с escape именем arg со значением P1=zed, если unescape он посмотрит в своем PATH_INFO (ладно, это rewriteengine не настоящий параметр запроса, так httpd что подайте на меня в суд apache ;-P).

По крайней мере, я так rewritemap думаю. . . Я сам никогда rewritecond не использовал этот флаг.

apache

mod-rewrite

escaping

2022-10-16T03:54:18+00:00