[windows] विंडोज होस्ट फ़ाइल में वाइल्डकार्ड


Answers

अपने प्रश्न का उत्तर देने के लिए, आप Windows के तहत होस्ट फ़ाइल में वाइल्डकार्ड का उपयोग नहीं कर सकते हैं।

हालांकि, यदि आप नई साइट्स को काम करने के लिए केवल मेजबान फ़ाइल को बदलना चाहते हैं .... आप इस तरह अपने अपाचे को कॉन्फ़िगर कर सकते हैं और आपको इसकी कॉन्फ़िगरेशन को संपादित करना नहीं है:

http://postpostmodern.com/instructional/a-smarter-mamp/

असल में मेरे सेटअप के आधार पर एक त्वरित सारांश, अपनी apache.conf फ़ाइल में निम्न जोड़ें:

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  <Directory "/xampp/sites">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  </Directory>

  <VirtualHost *:80>
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  </VirtualHost>

यह मुझे एक प्रविष्टि जोड़ने की अनुमति देता है जैसे:

127.0.0.1       test.dev

और फिर निर्देशिका बनाएं, c: \ xampp \ sites \ dev \ test और वहां आवश्यक फाइलें रखें और यह बस काम करता है।

दूसरा विकल्प apache.conf में <Directory> टैग का उपयोग करना है और http://localhost/project/ से पृष्ठों का संदर्भ देना है।

Question

मैं अपनी स्थानीय विकास मशीन स्थापित करना चाहता हूं ताकि *.local लिए किसी भी अनुरोध को *.local पर रीडायरेक्ट किया जा सके। विचार यह है कि जैसे-जैसे मैं कई साइटों को विकसित करता हूं, मैं केवल अपाचे में vhosts जोड़ सकता हूं जिसे साइट site1.local , साइट site2.local इत्यादि कहा जाता है, और उन्हें site2.local लिए सभी संकल्प site2.local , जबकि अपाचे तदनुसार एक अलग साइट परोसता है।

मैं विंडोज एक्सपी पर हूं।

मैंने जोड़ने की कोशिश की

127.0.0.1       *.local

मेरे c:\windows\system32\drivers\etc\hosts फ़ाइल में, भी कोशिश की:

127.0.0.1       .local

इनमें से कोई भी काम नहीं कर रहा है।

मुझे पता है कि मैं उन्हें विभिन्न बंदरगाहों पर सेट कर सकता हूं, लेकिन यह दर्द है क्योंकि यह याद रखना मुश्किल है कि कौन सा बंदरगाह है।

मैं कोई स्थानीय DNS सर्वर या कुछ भी कठिन, किसी भी सुझाव को स्थापित नहीं करना चाहता हूं?




मुझे विंडोज होस्ट्स फ़ाइल का उपयोग करने के बारे में एक पोस्टिंग मिली जो यह भी कहती है "कोई वाइल्डकार्ड की अनुमति नहीं है।"

अतीत में, मैंने मेजबान फ़ाइल में अतिरिक्त प्रविष्टियों को अभी जोड़ा है, क्योंकि (जैसा कि पहले कहा गया था), यह तब तक बहुत अधिक काम नहीं है जब आप पहले ही अपाचे कॉन्फ़िगरेशन फ़ाइल संपादित कर रहे हों।




आप AngryHosts को आजमा सकते हैं, जिसने वाइल्डकार्ड और नियमित अभिव्यक्ति का समर्थन करने का एक तरीका प्रदान किया है। असल में, यह एक मेजबान फ़ाइल वृद्धि और प्रबंधन सॉफ्टवेयर है।
अधिक सुविधाओं को देखा जा सकता है @ http://angryhosts.com/features/




जबकि आप इस तरह एक वाइल्डकार्ड नहीं जोड़ सकते हैं, आप कम से कम परीक्षण के लिए साइटों की पूरी सूची जोड़ सकते हैं, जो आपके मेजबान फ़ाइल में मेरे लिए पर्याप्त काम करता है, आप बस जोड़ते हैं:

127.0.0.1 साइट 1। लोकल
127.0.0.1 साइट 2। लोकल
127.0.0.1 साइट 3। लोकल
...




पहले से ही महान सुझावों को जोड़ने के लिए, XIP.IO एक शानदार वाइल्डकार्ड DNS सर्वर है जो सार्वजनिक रूप से उपलब्ध है।

      myproject.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
  other.project.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
   other.machine.10.0.0.1.xip.io  -- resolves to -->   10.0.0.1

(गैर-लूपबैक पते निर्दिष्ट करने की क्षमता आईओएस उपकरणों पर परीक्षण साइटों के लिए शानदार है जहां आप होस्ट फ़ाइल तक नहीं पहुंच सकते हैं।)

यदि आप इसे अन्य उत्तरों में उल्लिखित कुछ अपाचे कॉन्फ़िगरेशन के साथ जोड़ते हैं, तो आप संभवतः वर्चुअलहोस्ट को शून्य सेटअप के साथ जोड़ सकते हैं।




आप इस के लिए echoipdns का उपयोग कर सकते हैं ( https://github.com/zapty/echoipdns )।

echoipdns local चलाकर echoipdns local सबडोमेन के लिए सभी अनुरोध 127.0.0.1 पर रीडायरेक्ट किए जाते हैं, इसलिए xyz.local आदि वाला कोई भी डोमेन 127.0.0.1 को हल करेगा। आप किसी भी अन्य प्रत्यय का उपयोग स्थानीय रूप से अपने इच्छित नाम से बदल सकते हैं।

Echoipdns और भी शक्तिशाली है, जब आप नेटवर्क में अन्य मशीनों से अपने यूआरएल का उपयोग करना चाहते हैं तो भी आप इसे शून्य कॉन्फ़िगरेशन के साथ उपयोग कर सकते हैं।

उदाहरण के लिए यदि आपका मशीन आईपी पता 192.168.1.100 है तो आप अब डोमेन नाम xyz.192-168-1-100.local का उपयोग कर सकते हैं जो हमेशा 1 9 2.168.1.100 को हल करेगा। यह जादू डोमेन नाम के दूसरे भाग में आईपी पते को देखकर और DNS क्वेरी पर एक ही आईपी पता लौटकर echoipdns द्वारा किया जाता है। आपको उस मशीन पर echoipdns चलाना होगा जिससे आप रिमोट सिस्टम तक पहुंचना चाहते हैं।

echoipdns को एक स्टैंडअलोन DNS प्रॉक्सी के रूप में भी सेट किया जा सकता है, इसलिए बस इस DNS को इंगित करें, अब आप हर बार एक विशेष कमांड चलाने के बिना सभी उपरोक्त लाभों का उपयोग कर सकते हैं, और आप इसे मोबाइल उपकरणों से भी उपयोग कर सकते हैं।

इसलिए अनिवार्य रूप से यह स्थानीय और टीम पर्यावरण के लिए वाइल्डकार्ड डोमेन आधारित DNS विकास को सरल बनाता है।

echoipdns मैक, लिनक्स और विंडोज पर काम करता है।

नोट: मैं echoipdns के लिए लेखक हूँ।




@petah और एक्रिलिक DNS प्रॉक्सी सबसे अच्छा जवाब है, और अंत में वह अपाचे का उपयोग करके बहु-साइट करने की क्षमता का संदर्भ देता है जो @jeremyasnyder थोड़ा और नीचे बताता है ...

... हालांकि, हमारे मामले में हम एक बहु-किरायेदार होस्टिंग सिस्टम का परीक्षण कर रहे हैं और इसलिए अधिकांश डोमेन जिन्हें हम परीक्षण करना चाहते हैं, वही virtualhost , जबकि कुछ अन्य लोगों को कहीं और निर्देशित किया जाता है।

तो हमारे मामले में, आप बस ServerAlias निर्देश में रेगेक्स वाइल्डकार्ड का उपयोग करते हैं, जैसे ...

ServerAlias *.foo.local



हमारे पास यह हमारे स्थानीय DNS सर्वर में वाइल्डकार्ड DNS का उपयोग करके काम कर रहा है: A रिकॉर्ड जोड़ें जैसे *.local -> 127.0.0.1

मुझे लगता है कि नेटवर्क पर मशीनों के लिए डोमेन प्रत्यय खोज सूची में आपके नेटवर्क सेटिंग्स को चुने गए डोमेन प्रत्यय की आवश्यकता होगी, इसलिए हो सकता है कि आप अपनी कंपनी के आंतरिक डोमेन (जैसे .int ) के साथ .local को प्रतिस्थापित करना चाहें और फिर सबडोमेन जोड़ें यह सुनिश्चित करने के लिए .localhost.int यह क्या है।

तो *.localhost.int नेटवर्क पर सभी के लिए 127.0.0.1 को हल करेगा, और सभी डेवलपर्स के लिए कॉन्फ़िगरेशन फ़ाइल सेटिंग्स "बस काम करेंगी" अगर एंडपॉइंट्स उस उपडोमेन को बंद कर दें तो site1.localhost.int , site2.localhost.int यह है हमने जो योजना बनाई है, उतनी ही काफी है।

dnsmasq भी अच्छा लग रहा है, लेकिन मैंने अभी तक यह कोशिश नहीं की है: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/




मैंने मेजबानों की जगह लेने के लिए यह सरल टूल बनाया है। नियमित अभिव्यक्ति समर्थित हैं। https://github.com/stackia/DNSAgent

एक नमूना विन्यास:

[
    {
        "Pattern": "^.*$",
        "NameServer": "8.8.8.8"
    },
    {
        "Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
        "Address": "203.66.168.119"
    },
    {
        "Pattern": "^.*\\.cn$",
        "NameServer": "114.114.114.114"
    },
    {
        "Pattern": "baidu.com$",
        "Address": "127.0.0.1"
    }
]



Links