Назад | Перейти на главную страницу

Точка с запятой декодирования 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-адрес перед его пересылкой на прокси?

Возможно соответствующая проблема отмечена на apache.org/bugzilla

mod_proxy канонизировать URL-адреса, передаваемые на серверную часть. Если вы хотите подавить это поведение, используйте nocanon ключевое слово, и это передает путь URL "сырой" на бэкэнд.

Например:

ProxyPass / http://127.0.0.1:8081/ nocanon