Gdy przeglądam ten adres URL: http://localhost:8080/foo/%5B-%5D
server ( nc -l 8080
) otrzymuje go takim, jakim jest:
GET /foo/%5B-%5D HTTP/1.1
Jednak gdy proxy tej aplikacji przez proxy nginx (1.1.19):
location /foo {
proxy_pass http://localhost:8080/foo;
}
To samo żądanie przekierowane przez port Nginx jest przekazywane z dekodowaną ścieżką:
GET /foo/[-] HTTP/1.1
Zdekodowane nawiasy kwadratowe w ścieżce GET powodują błędy na serwerze docelowym ( HTTP Status 400 - Niedozwolony znak na ścieżce ... ), gdy przybywają bez zmiany znaczenia.
Czy istnieje sposób na wyłączenie dekodowania adresu URL lub jego ponowne zakodowanie, aby serwer docelowy uzyskał dokładnie tę samą ścieżkę, gdy jest kierowany przez nginx? Jakaś sprytna reguła przepisywania adresów URL?