मैं NGINX का उपयोग करने के लिए mydomain.com
किसी भी उप डोमेन *.mydomain.com
को कैसे पुनर्निर्देशित कर सकता हूं www.adifferentdomain.com
?
मैं NGINX का उपयोग करने के लिए mydomain.com
किसी भी उप डोमेन *.mydomain.com
को कैसे पुनर्निर्देशित कर सकता हूं www.adifferentdomain.com
?
जवाबों:
server_name .mydomain.com सिंटैक्स का उपयोग करके प्रत्यय मिलान का समर्थन करता है:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
या किसी भी संस्करण 0.9.1 या उच्चतर पर:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
निर्दिष्ट नहीं किए जाने पर 80 को पोर्ट करने के लिए निर्देश चूक। यह वास्तव में सामान्य से थोड़ा अधिक जटिल है; देख nginx विन्यास डॉक्स अधिक जानकारी के लिए।
?
हासिल होता है ?
rewrite
और return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
पहले से ही क्वेरी स्ट्रिंग है, इसलिए इसे फिर से जोड़ने की कोई आवश्यकता नहीं है। return 301
वाक्य रचना नया है, और वहाँ दो तरीकों के बीच व्यवहार में कोई अंतर नहीं होना चाहिए, लेकिन तो मैं सुरक्षित वाक्य रचना के साथ चला गया जब मैं मूल रूप से इस सवाल का जवाब दे, कई वितरण के लिए आवश्यक संस्करण नहीं था,।
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
तथा
यदि आप कर सकते हैं तो फिर से लिखना मॉड्यूल का उपयोग क्यों करें return
? तकनीकी रूप से बोलना, return
रीराइट मॉड्यूल का हिस्सा है जैसा कि आप यहाँ पढ़ सकते हैं लेकिन इस स्निपेट को इम्हो को पढ़ना आसान है।
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
आप इसे 301 रीडायरेक्ट भी दे सकते हैं।
return 302 $scheme://forwarded-domain.com$request_uri;
HTTPRewriteModule के माध्यम से काम करना चाहिए ।
उदाहरण के लिए www.example.com से फिर से लिखें।
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
।
यदि आप "domain1.com" के लिए अनुरोधों को "domain2.com" पर पुनर्निर्देशित करना चाहते हैं, तो आप एक सर्वर ब्लॉक बना सकते हैं जो इस तरह दिखता है:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
अस्थायी पुनर्निर्देश
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
स्थायी पुनर्निर्देश
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
विशिष्ट साइट के लिए nginx कॉन्फ़िगरेशन फ़ाइल में:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
आप बस सर्वर {} ब्लॉक के अंदर एक शर्त लिख सकते हैं:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}