वाइल्डकार्ड प्रविष्टि को / etc / मेजबानों में कैसे डालें?


85

मैं हाल ही में सभी उप-डोमेन को एक परीक्षण डोमेन के लिए इंगित करना चाहता था, चलो उदाहरण के लिए कहते हैं। 127.0.0.1 को हल करने के लिए * .example.com पर सभी अनुरोधों को इंगित करने का एक तरीका है


जवाबों:


103

ऐसा होता है कि /etc/hostsफ़ाइल वाइल्ड कार्ड प्रविष्टियों का समर्थन नहीं करती है।

आपको dnsmasq जैसी अन्य सेवाओं का उपयोग करना होगा। इसे dnsmasq में सक्षम करने के लिए, बस dnsmasq.confनिम्नलिखित पंक्ति को संपादित करें और जोड़ें:

address=/example.com/127.0.0.1

5
वाइल्डकार्ड प्रविष्टि के लिए - पता = /। example.com/127.0.0.1
vivex

2
@ विवेक इसकी आवश्यकता नहीं
राहिल वज़ीर

4
Ubuntu dnsmasqसेटअप के लिए इसे देखें ।
'21

5
Macosx सेटअप के लिए passcuriosity.com/2013/dnsmasq-dev-osx काफी मददगार है।
आमिर

4
rahilwazir, वास्तव में, यह है यदि आप सभी उप डोमेन नहीं चाहते हैं। # वाइल्ड कार्ड के रूप में भी काम करता है। मैं व्यक्तिगत रूप से `123 = / dev # .example.com / 127.0.0.1 का उपयोग करके dev123.example.com आदि कार्य कर रहा हूँ।
रे फॉस

8

यहाँ मूल लक्ष्य को पूरा करने की कोशिश करने वालों के लिए विन्यास है (सभी एक ही कोडबेस की ओर इशारा करते हुए वाइल्डकार्ड - कुछ भी स्थापित न करें, देव वातावरण अर्थात, XAMPP)

होस्ट फ़ाइल (एक प्रविष्टि जोड़ें)

फ़ाइल: / etc / होस्ट (गैर-विंडोज़)

127.0.0.1   example.local

httpd.conf कॉन्फ़िगरेशन (vhosts सक्षम करें)

फ़ाइल: /XAMPP/etc/httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

httpd-vhosts.conf कॉन्फ़िगरेशन

फ़ाइल: XAMPP / etc / extra / httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@example.local
    DocumentRoot "/path_to_XAMPP/htdocs"
    ServerName example.local
    ServerAlias *.example.local
#    SetEnv APP_ENVIRONMENT development
#    ErrorLog "logs/example.local-error_log"
#    CustomLog "logs/example.local-access_log" common
</VirtualHost>

फिर से शुरू करें

pac फ़ाइल बनाएँ:

जहाँ भी आप चाहते हैं के रूप में save.pac सहेजें और फिर ब्राउज़र के नेटवर्क में फ़ाइल लोड करें> प्रॉक्सी> auto_configuration सेटिंग्स (यदि आप इसे बदलते हैं तो पुनः लोड करें)

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}

विंडोज पर होस्ट फ़ाइल के लिए काम नहीं करता है। यह केवल www.example.com
आंद्रे फिगयेरिडो

1
यह फ़ायरफ़ॉक्स में पीएसी फ़ाइल का उपयोग करके विंडोज़ पर काम करता है। मैंने कई विंडोज़ मशीनों पर इसका परीक्षण किया है। होस्ट फ़ाइल को केवल एक प्रविष्टि की आवश्यकता होती है, pac फ़ाइल उप डोमेन को संभालती है।
डैनियल जोर्डी

1
मूल प्रश्न जैसा कि मैं समझता हूं कि यह अपाचे के बारे में नहीं है, लेकिन नेटवर्किंग स्तर पर है, इसलिए मुझे लगता है कि आपकी प्रतिक्रिया इस बिंदु को याद करती है: /
enTropy

इंटरनेट में पीएसी फाइल का उपयोग करने के लिए देखें: कैंपस .barracuda.com
saeed arab sheybani

1
कृपया ध्यान दें कि जब एक मेजबान (जैसे स्थानीयहोस्ट) को प्रॉक्सी अनुरोधों के लिए पीएसी फाइल का उपयोग किया जाता है, तो अपाचे जैसा एक वेब सर्वर केवल पथ घटक के बजाय REQUEST_URI चर में पूर्ण URL (प्रोटोकॉल और होस्टनाम सहित) का उपयोग करेगा।
JSchirrmacher

5

dnsmasq का उपयोग करें

दिखावा कर रहे हैं कि आप एक डेबियन-आधारित डिस्ट (ubuntu, टकसाल ..) का उपयोग कर रहे हैं, यह जांचें कि क्या यह स्थापित है

(sudo) systemctl status dnsmasq

अगर यह सिर्फ विकलांग है तो इसे शुरू करें

(sudo) systemctl start dnsmasq

यदि आपको इसे स्थापित करना है, तो लिखें

(sudo) apt-get install dnsmasq

/etc/dnsmasq.confइस तरह संपादित करने के लिए डोमेन को परिभाषित करने के लिए

address=/example.com/127.0.0.1

to समाधान * .example.com

! परिवर्तनों के लिए प्रभावी होने के लिए आपको dnsmasq को पुनः लोड करने की आवश्यकता है!

systemctl reload dnsmasq
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.