नाम-आधारित वर्चुअल होस्ट का उपयोग करते समय, लोड किया गया पहला वर्चुअल होस्ट कॉन्फ़िगरेशन डिफ़ॉल्ट होगा (स्रोत: अपाचे विकी )। उदाहरण के लिए, नीचे विन्यास के साथ, अन्यथा बेजोड़ डोमेन इसके साथ मेल खाएगा domain-one.com
:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName domain-one.com
# Other options and directives ..
</VirtualHost>
<VirtualHost *:80>
ServerName domain-two.com
# Other options and directives ..
</VirtualHost>
कई सर्वरों में एक अखंड कॉन्फ़िगरेशन फ़ाइल नहीं होती है, लेकिन कई होस्ट-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों को निम्नानुसार व्यवस्थित किया जाता है:
/etc/apache2
|-- sites_available (actual configuration files)
`-- sites_enabled (symlinks to files in sites_available)
इस स्थिति में, किसी विशेष वर्चुअल होस्ट कॉन्फ़िगरेशन लोड को पहले बनाने के लिए, सिम्लिंक को किसी ऐसी चीज़ का नाम दें, जिसे पहले सॉर्ट किया जाएगा, जैसे कि 00-default
।
कुछ अन्य उत्तर बिल्कुल सही नहीं हैं। अपाचे विकी के अनुसार, वर्चुअल होस्ट में ए सेटServerName
करना गलत है। यदि बिना होस्ट होस्ट को ServerName
पहले लोड नहीं किया गया है, तो Apache कभी भी इसका उपयोग नहीं कर सकता है, क्योंकि पहले होस्ट लोड किया गया डिफ़ॉल्ट होगा।
इसके अलावा, जबकि ServerAlias *
वास्तव में कुछ भी मैच होगा, यह बाद में परिभाषित अन्य आभासी होस्ट को भी ओवरराइड कर सकता है। हो सकता है कि यह दृष्टिकोण तब काम करेगा जब इसे हमेशा अंतिम वर्चुअल होस्ट के रूप में परिभाषित किया जाए (जैसा कि प्रश्न में दिए गए कॉन्फ़िगरेशन में है), लेकिन इसका मतलब है कि एक नया निर्देश जोड़ना और ऊपर दिए गए आदेश को बदलने के बजाय केवल क्रम बदलना।