निम्न नमूना सभी को गलत तरीके से दिखने अनुरोध कम गलत तरीके से दिखने वाले में, यूआरएल की परवाह किए बिना (अनुरोध किया फ़ाइल नाम — अनुरोध में %3F
के रूप में एन्कोड में ?
के रूप में परिभाषित) रीडायरेक्ट करेगा।
(कृपया ध्यान दें कि, कहीं और सही तरीके से सलाह दी गई है, तो आपको पहले स्थान पर इन गलत तरीके से गठित लिंक नहीं मिलना चाहिए, इसलिए इसे अंतिम उपाय — के रूप में उपयोग करें, जब आप गलत तरीके से गठित लिंक को अन्यथा सही नहीं कर सकते हैं, और क्या तुम जानते हो कि इस तरह के अनुरोध वैध एजेंटों द्वारा प्रयास किया जाता है।)
server {
listen [::]:80;
server_name localhost;
rewrite ^/([^?]*)\?(.*)$ /$1?$2? permanent;
location/{
return 200 "id is $arg_id\n";
}
}
यह है कि यह कैसे — काम करेगा जब एक गलत तरीके से देख अनुरोध का सामना करना पड़ा है, सुधार का प्रयास एक माना जाता है कि सही के साथ एक 301 Moved Permanently
प्रतिक्रिया के साथ किया जाता है का उदाहरण है Location
प्रतिक्रिया शीर्षलेख, जो ब्राउज़र को नए प्रदान किए गए स्थान पर स्वचालित रूप से अनुरोध को फिर से जारी करेगा समझना:
opti# curl -6v "http://localhost/default/Site%3Fid%3D13"
* About to connect() to localhost port 80 (#0)
* Trying ::1...
* connected
* Connected to localhost (::1) port 80 (#0)
> GET /default/Site%3Fid%3D13 HTTP/1.1
> User-Agent: curl/7.26.0
> Host: localhost
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.4.1
< Date: Wed, 15 Jan 2014 17:09:25 GMT
< Content-Type: text/html
< Content-Length: 184
< Location: http://localhost/default/Site?id=13
< Connection: keep-alive
<
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.1</center>
</body>
</html>
* Connection #0 to host localhost left intact
* Closing connection #0
ध्यान दें कि कोई सुधार के प्रयास उचित दिखने अनुरोध पर किया जाता है:
opti# curl -6v "http://localhost/default/Site?id=13"
* About to connect() to localhost port 80 (#0)
* Trying ::1...
* connected
* Connected to localhost (::1) port 80 (#0)
> GET /default/Site?id=13 HTTP/1.1
> User-Agent: curl/7.26.0
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.4.1
< Date: Wed, 15 Jan 2014 17:09:30 GMT
< Content-Type: application/octet-stream
< Content-Length: 9
< Connection: keep-alive
<
id is 13
* Connection #0 to host localhost left intact
* Closing connection #0
@ जॉन सिर्फ मामले में आप भूल गए हैं और नोटिस नहीं किया था, इनाम आप सेट में समाप्त हो रहा है कुछ घंटे। –