अनुशंसित तरीका संभवतः ए का उपयोग करना होगा map
, क्योंकि इन चर का मूल्यांकन केवल तब किया जाता है जब उनका उपयोग किया जाता है।
इसके अलावा return 301 ...
पुनर्लेखन पर पसंद किया जाता है, क्योंकि कोई नियमित अभिव्यक्ति संकलित नहीं की जाती है।
यहां एक उदाहरण जहां होस्ट और उपयोगकर्ता-एजेंट एक संक्षिप्त स्ट्रिंग के रूप में तुलना करते हैं:
map "$host:$http_user_agent" $my_domain_map_host {
default 0;
"~*^www.domain.com:Agent.*$" 1;
}
server {
if ($my_domain_map_host) {
return 302 http://www.domain2.com$request_uri;
}
}
और यह और भी अधिक लचीला हो सकता है, उदाहरण के लिए यदि 2 नहीं बल्कि अधिक डोमेन शामिल हैं।
यहाँ हम नक्शा www.domain.com
के साथ शुरू उपयोगकर्ता के एजेंटों के साथ Agent
करने के लिए http://www.domain2.com
और www.domain2.com
सटीक उपयोगकर्ता के एजेंट के साथ Other Agent
करने के लिए http://www.domain3.com
:
map "$host:$http_user_agent" $my_domain_map_host {
default 0;
"~*^www.domain.com:Agent.*$" http://www.domain2.com;
"~*^www.domain2.com:Other Agent$" http://www.domain3.com;
}
server {
if ($my_domain_map_host) {
return 302 $my_domain_map_host$request_uri;
}
}
एनबी आपको काम करने के लिए मानचित्र में संक्षिप्त स्ट्रिंग के लिए nginx 0.9.0 या उच्चतर की आवश्यकता होगी।