Вы можете использовать RewriteMap
и int (внутренние функции), чтобы создать карту unescape (хотя она называется "escape"). Поскольку это RewriteMap, он должен быть либо в конфигурации сервера (httpd.conf), либо в конфигурации виртуального хоста:
RewriteMap unescape int:escape
Теперь вы можете использовать $ {unescape:} для вашей обратной ссылки. Поэтому, если вы соответствуете URI, в котором есть экранированные символы, вы можете заключить в него свою обратную ссылку, чтобы выйти из нее. Например:
# Need this to avoid rewrite-looping
RewriteCond %{REQUEST_URI} !^/srv/fdr
RewriteRule ^(.+)$ /srv/fdr/${unescape:$1} [L,NE]
Это займет URI /B%C3%BCc
и перепишет его на /srv/fdr/Büc
Также обратите внимание, что если вы поместите правило перезаписи в конфигурацию вашего сервера или виртуального хоста, вам нужно добавить / перед (. +) в совпадении с регулярным выражением.