फिर भी एक और nginx पुनर्लेखन नियम सवाल को फिर से लिखने:nginx उपडोमेन
मैं http://*.domain.com
करने के लिए http://www.*.domain.com
से एक पुनर्लेखन कैसे कर सकता है? सर्वर गलती से
फिर भी एक और nginx पुनर्लेखन नियम सवाल को फिर से लिखने:nginx उपडोमेन
मैं http://*.domain.com
करने के लिए http://www.*.domain.com
से एक पुनर्लेखन कैसे कर सकता है? सर्वर गलती से
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
उत्तर: https://serverfault.com/questions/139579/nginx-subdomain-rewrite
यह दृष्टिकोण आजकल अनुशंसित नहीं है। [सामान्य नुकसान पर यह अनुभाग देखें] (http://wiki.nginx.org/Pitfalls#Using_If)। –
अनुशंसित दृष्टिकोण क्या है? – Tony
server {
listen 80;
listen 443;
server_name ~^www\.(\w+)\.domain\.com$;
location/{
rewrite^$scheme://$1.domain.com$request_uri? permanent;
}
}
ध्यान दें कि यह एक डबल क्वेरी स्ट्रिंग उत्पन्न करता है, '/? Foo = bar' के लिए अनुरोध' /? Foo = bar? Foo = bar' पर रीडायरेक्ट करेगा। '$ Uri' का उपयोग करना इरादा के रूप में काम करता है, हालांकि बेहतर विकल्प हो सकते हैं। – sapht
जोड़ रहे हैं? $ request_uri के बाद बार-बार क्वेरी स्ट्रिंग समस्या से बचेंगी। – tarkeshwar
server_name के बाद एक गायब अर्धविराम है – alvin
इसी प्रकार के प्रश्न: http://stackoverflow.com/questions/2498712/nginx-subdomain-rewrite –