Коли я переходжу до цієї URL-адреси: http://localhost:8080/foo/%5B-%5D
сервер ( nc -l 8080
) отримує його як є:
GET /foo/%5B-%5D HTTP/1.1
Однак, коли я проксі цей додаток через nginx (1.1.19):
location /foo {
proxy_pass http://localhost:8080/foo;
}
Той самий запит, який направляється через порт nginx, передається з декодованим шляхом:
GET /foo/[-] HTTP/1.1
Розшифровані квадратні дужки на шляху GET викликають помилки на цільовому сервері ( HTTP Status 400 - Незаконні символи у шляху ... ), коли вони надходять без уникнення.
Чи є спосіб відключити декодування URL-адреси або кодувати його назад, щоб цільовий сервер отримував такий самий шлях при маршрутизації через nginx? Якесь розумне правило перезапису URL-адреси?