Quando cerco questo URL: http://localhost:8080/foo/%5B-%5D
server ( nc -l 8080
) lo riceve così com'è:
GET /foo/%5B-%5D HTTP/1.1
Tuttavia, quando eseguo il proxy di questa applicazione tramite nginx (1.1.19):
location /foo {
proxy_pass http://localhost:8080/foo;
}
La stessa richiesta instradata attraverso la porta nginx viene inoltrata con il percorso decodificato:
GET /foo/[-] HTTP/1.1
Le parentesi quadre decodificate nel percorso GET stanno causando gli errori nel server di destinazione ( Stato HTTP 400 - Carattere illegale nel percorso ... ) quando arrivano senza escape.
Esiste un modo per disabilitare la decodifica URL o ricodificarlo in modo che il server di destinazione ottenga lo stesso percorso esatto quando viene instradato attraverso nginx? Qualche regola di riscrittura URL intelligente?