जब मैं इस 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;
}
नंगेक्स पोर्ट के माध्यम से रूट किए गए एक ही अनुरोध को मार्ग डीकोड किए जाने के साथ अग्रेषित किया जाता है:
GET /foo/[-] HTTP/1.1
जीईटी पथ में डिकोड किए गए वर्ग कोष्ठक लक्ष्य सर्वर ( HTTP स्थिति 400 - पथ में अवैध वर्ण ... ) की त्रुटियों का कारण बन रहे हैं क्योंकि वे अन-एस्केप हो गए हैं।
क्या URL डिकोडिंग को अक्षम करने या इसे वापस एनकोड करने का एक तरीका है ताकि nginx के माध्यम से रूट किए जाने पर लक्ष्य सर्वर को ठीक वैसा ही रास्ता मिल जाए? कुछ चतुर URL फिर से लिखते हैं?