mod_proxy
canonicalize os URLs passados para o back-end. Se você quiser suprimir esse comportamento, use nocanon
keyword e isso passa o caminho da URL "raw" para o backend.
Por exemplo:
ProxyPass / http://127.0.0.1:8081/ nocanon
Apache, recebendo uma solicitação com um ponto-e-vírgula codificado (% 3B) está decodificando-o antes de passar a solicitação para um proxy (backend do Spring Tomcat).
Linhas hospedeiras virtuais apache relevantes são:
ProxyPreserveHost on
RequestHeader set X-Forwarded-Proto https
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
Então, por exemplo, quando um pedido de URL como
http://testsite.com/page/%27+many+times%3B+the+valiant/author
O proxy será encaminhado como
http://testsite.com/page/%27+many+times/author
Existe algo que eu possa fazer para evitar que o apache decodifique essa URL antes de encaminhá-la para o proxy?