एक विशिष्ट पथ पर सापेक्ष रीडायरेक्ट के साथ एक निश्चित यूआरएल का जवाब देने के लिए nginx में रीडायरेक्ट को कैसे कॉन्फ़िगर किया जा सकता है?nginx से रिश्तेदार यूआरएल रीडायरेक्ट कैसे जारी करें?
nginx documentation सुझाव देता है कि यह nginx के लिए डिफ़ॉल्ट मोड है, लेकिन वास्तविकता में यदि स्थान को/nginx से शुरू करने के लिए पुनर्निर्देशित किया जा रहा है तो स्थान फ़ील्ड में एक पूर्ण यूआरएल का जवाब दे रहा है।
स्थानीय सर्वर विन्यास वाले स्थान के लिए:
location = /a {
return 301 some/path;
}
location = /b {
return 301 /qwerty;
}
के अनुरोध के जवाब स्थान के लिए/एक है:
Location: some/path
और के लिए/b यह है:
Location: http://127.0.0.1/qwerty
हालांकि, हम जवाब देना चाहते हैं:
Location: /qwerty
हम रिश्तेदार रीडायरेक्ट का उपयोग करना चाहते हैं यह है कि हम विभिन्न डोमेन और प्रॉक्सी से nginx तक पहुंचना चाहते हैं, उदा। देव में या एसएसएल-टर्मिनिंग लोड-बैलेंसर के माध्यम से स्पष्ट रूप से, और उस संदर्भ को समझने के लिए nginx से मुक्त होने से चीजों को सरल रखना होगा।
FYI करें इन उदाहरणों nginx संस्करणों 1.4.6 और 1.9.6 के खिलाफ परीक्षण किया गया, का उपयोग कर कर्ल उदा .:
curl --head http://127.0.0.1/b
"वापसी" निर्देश में किसी स्थान के साथ अच्छी चाल डालें नहीं। क्या nginx का यह व्यवहार कहीं भी दस्तावेज है? –
वह अंतरिक्ष चाल उल्लसित और भयानक है, आपने इसे कैसे खोजा? –
hi @TrevorFreeman, आरएफसी 2616 वास्तव में "अंतरिक्ष चाल" की अनुमति देता है। अध्याय "4.2 संदेश शीर्षलेख" में, हेडर मान को 'फ़ील्ड-वैल्यू = * (फ़ील्ड-कंटेंट | एलडब्ल्यूएस)' के रूप में परिभाषित किया गया है। '* एलडब्लूएस' का मतलब शून्य या कई 'रैखिक सफेद स्थान' है। – xiaochen