जवाबों:
$host
कोर मॉड्यूल का एक चर है ।
$ मेजबान
यह चर होस्ट हेडर के अनुरोध या सर्वर के नाम के अनुरूप है जो होस्ट हेडर उपलब्ध नहीं होने पर अनुरोध को संसाधित करने वाले सर्वर के नाम के बराबर है।
इस चर का ऐसे मामलों में $ http_host से भिन्न मान हो सकता है: 1) जब होस्ट इनपुट हेडर अनुपस्थित है या रिक्त मान है, तो $ host सर्वर_name निर्देश के मूल्य के बराबर है; 2) जब होस्ट के मान में पोर्ट नंबर होता है, तो $ होस्ट में उस पोर्ट नंबर को शामिल नहीं किया जाता है। $ मेजबान का मान हमेशा 0.8.17 के बाद से कम होता है।
$http_host
उसी मॉड्यूल का एक चर भी है, लेकिन आप इसे उस नाम के साथ नहीं पाएंगे क्योंकि इसे उदारतापूर्वक $http_HEADER
( रेफ ) के रूप में परिभाषित किया गया है ।
$ http_HEADER
HTTP रिक्वेस्ट हेडर HEADER का मान जब लोअरकेस में परिवर्तित होता है और 'डैश' से 'अंडरस्कोर' में परिवर्तित होता है, जैसे $ http_user_agent, $ http_referer ...;
सारांश:
$http_host
हमेशा HTTP_HOST
अनुरोध हैडर के बराबर होता है ।$host
के बराबर होती है $http_host
, लोअरकेस और पोर्ट संख्या के बिना (यदि है), को छोड़कर जब HTTP_HOST
अनुपस्थित है या एक खाली मूल्य है । उस मामले में, सर्वर $host
के server_name
निर्देश के मूल्य के बराबर है जो अनुरोध को संसाधित करता है।server_name
निर्देश भी हो सकते हैं । यदि आप पहले एक में एक रेगेक्स है, जो हो जाता है $host
, और सभी प्रकार के बदसूरत सामान फिर से लिखना नियमों के दौरान हो सकता है।
$server_name
चर server_name
निर्देश के मूल्य या वास्तविक सर्वर नाम के बराबर होता है जो कई server_name
निर्देश थे, तो उन्हें चुना गया था ?
$server_name
हमेशा server_name निर्देश के साथ निर्दिष्ट पहले मूल्य के बराबर है। उदाहरण के लिए, हमेशा server_name example.com one.example.com two.example.com;
, $server_name
"example.com" होगा, इसके बावजूद कि उपयोगकर्ता ने कौन सा होस्ट निर्दिष्ट किया है । वास्तव में, यदि आपके पास नहीं है default_server
, तो मेजबान कुछ पूरी तरह से अलग हो सकता है (जैसे example.org)।
server_name
है जिसे वर्तमान सर्वर ब्लॉक में परिभाषित किया गया है। यदि आपके पास कईserver_name
एस हैं, तो केवल पहला दिखाई देगा।