Apache 解码分号 - mod_proxy

Apache 解码分号 - mod_proxy

Apache 收到带有编码分号(%3B)的请求后,会对其进行解码,然后再将其传递给代理(Spring Tomcat 的后端)。

相关的 apache 虚拟主机行是:

ProxyPreserveHost on
RequestHeader set X-Forwarded-Proto https
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/

例如,当请求如下 URL 时

http://testsite.com/page/%27+many+times%3B+the+valiant/author

将被代理转发为

http://testsite.com/page/%27+many+times/author

我可以做些什么来阻止 apache 在将该 URL 转发到代理之前解码该 URL?

也许apache.org/bugzilla 上记录的相关问题

答案1

mod_proxy将传递到后端的 URL 规范化。如果您想要禁止此行为,请使用nocanon关键字,这将传递 URL 路径“生的”到后端。

例如:

ProxyPass / http://127.0.0.1:8081/ nocanon

相关内容