Apache 2.2.19には、次の非常に単純なリバースプロキシルールがあります。
ProxyPass /test http://other.local.machine/test
ProxyPassReverse /test http://other.local.machine/test
問題は、mod_proxyがLocation
ヘッダーの特殊文字をエスケープしているように見えることですが、そこにある特殊文字はすでにエスケープされています(たとえば、スペースは%20
)。したがって、最終的には、単純な空間があいまいなシーケンスに変換されます%2520
。
Location
ヘッダーがすでにエスケープされている理由は、デフォルトで文字をエスケープするRewriteRule
ディレクティブによって生成されるためです。
どうすればこれを修正できますか?
RewriteRuleを変更するだけではいけませんか?特殊文字のエスケープを防ぐために NEフラグ があります。
RewriteRule /test.htm "/test page.html" [NE,R]