स्थानीयहोस्ट URL में उपडोमेन जोड़ें


102

मैं एक वेब एप्लिकेशन लिख रहा हूं जो एक यूआरएल उपसर्ग के आधार पर अलग तरह से व्यवहार करता है। प्रारूप कुछ इस प्रकार है:

   https://myprefix.mycompany.com

वेब ऐप myprefix के आधार पर अलग तरह से व्यवहार करता है। मेरा वेब ऐप URL से उस हिस्से को निकालता है और उस पर कार्य करता है।

हालाँकि, जब मैं अपने स्थानीय पर परीक्षण करता हूं, तो मैं एक स्थानीयहोस्ट पता का उपयोग करता हूं:

   https://localhost:1234

मैं ऐसा कुछ नहीं करूंगा:

   https://myprefix.localhost:1234

मेरे लिए इस परिदृश्य का परीक्षण करने का सबसे अच्छा तरीका क्या है?

बहुत धन्यवाद


यहाँ इस मुद्दे का समाधान है stackoverflow.com/a/29629675/2950006
मिकेल चौधरी

जवाबों:


146

दुर्भाग्य से, क्योंकि localhostयह एक उचित डोमेन नहीं है, आप इस तरह से एक उपडोमेन नहीं जोड़ सकते। आप कर सकते हैं , हालांकि, यह सोच कर कि यह एक विशिष्ट डोमेन और परीक्षण चीज़ों को उसी तरह का मालिक है में अपने कंप्यूटर चाल। उदाहरण के लिए, यदि आपके पास UNIX- आधारित ऑपरेटिंग सिस्टम है, तो फ़ाइल को खोलें (रूट के रूप में) /etc/hostsऔर एक लाइन (या लाइनें) जोड़ें जैसे:

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

आपका कंप्यूटर अब example.comऔर subdomain.example.comअपने आप से संबंधित दोनों का इलाज करेगा । यदि आप या तो अपने वेब ब्राउज़र में जाते हैं, तो वे सिद्धांत रूप में, उसी तरह काम करेंगे localhost, लेकिन आपका वेब सर्वर अपने होस्ट हेडर में सही डोमेन देखेगा।


आपके उत्तर के लिए बहुत धन्यवाद। यह वही है जो मैं चाहता हूं। हालाँकि, मेरा वेब ऐप एक पोर्ट पर चलता है, 1234 का कहना है। मैंने आसपास खोज की और लोगों ने कहा कि पोर्ट नंबर को / etc / मेजबानों में निर्दिष्ट करने का कोई तरीका नहीं है। पोर्ट निर्दिष्ट करने का सबसे अच्छा तरीका क्या है?
केविन

7
आप हमेशा की तरह अपने URL में पोर्ट का उपयोग करने जा रहे हैं, जैसे http://subdomain.example.com:1234/whatever। पोर्ट डोमेन से पूरी तरह से अलग है (डोमेन का उपयोग मशीन की पहचान के लिए किया जाता है, पोर्ट का उपयोग पहचानने के लिए किया जाता है कि मशीन पर कौन सा प्रोग्राम संवाद करने के लिए है)।
मैट पैटनैड

वैकल्पिक रूप से, यदि आप अपने सॉफ़्टवेयर को रूट (परीक्षण के लिए) के रूप में चला सकते हैं, तो आप केवल पोर्ट 80 का उपयोग कर सकते हैं, जो डिफ़ॉल्ट है, इसलिए आपको एक निर्दिष्ट नहीं करना होगा।
मैट Patenaude 16

4
एक आईपी पते के बाद सिर्फ डोमेन नाम सूचीबद्ध कर सकते हैं: 127.0.0.1 example.com sub.example.com sub2.example.com...
automaton

6
यह विंडोज़ के लिए भी काम करता है। खिड़कियों पर होस्ट फ़ाइल स्थित है C:\Windows\System32\drivers\etc\hosts:। आपको फाइल को कहीं और कॉपी करने की आवश्यकता होगी जिसमें कम अनुमतियाँ हों, (आपके डेस्कटॉप की तरह), इसे संपादित करने के लिए और फिर इसे फ़ोल्डर में (अनुमतियों के आसपास काम करने के लिए) पेस्ट करें।
लिंडसे-नीड्स-स्लीप

36

मैं खिड़कियों पर समान व्यवहार के बारे में निश्चित नहीं हूं। मैं linux टकसाल पर काम कर रहा हूँ।

आप lvh.me:portएक स्थानीय डोमेन के रूप में उपयोग कर सकते हैं । आप सोच सकते हैं कि आपकी परियोजना localhost:portइस डोमेन पर तैनात है ।

इसके बजाय sub.localhost:portआप का उपयोग करने के लिए हैsub.lvh.me:port

युपीडी

sub.localhost:portक्रोम में काम करता है। फ़ायरफ़ॉक्स स्वचालित रूप से www जोड़ता है। दर्ज डोमेन की शुरुआत में जो उप-डोमेन परीक्षण के साथ समस्याएं पैदा कर सकता है


मैं विंडोज पर भी इस काम की पुष्टि कर सकता हूं। इंटरनेट एक्सप्लोरर, एज, फ़ायरफ़ॉक्स, और क्रोम ब्राउज़र त्रुटिपूर्ण रूप से काम करते हैं!
जोस ए

मैं फ़ायरफ़ॉक्स का उपयोग कर रहा था और क्रोम टिप ने मेरा दिन बचाया, धन्यवाद!
ZekeMidas

2
अतिरिक्त लचीलेपन के लिए, आप nio.io या xip.io सेवाओं का भी उपयोग कर सकते हैं। वे किसी भी उपडोमेन के लिए किसी भी आईपी पते को मैप करने की अनुमति देते हैं। इसलिए जैसे आपके सहकर्मी आपके ऐप तक पहुंचने के लिए उसी URL का उपयोग कर सकते हैं। जैसे अगर आपके वर्कस्टेशन का आईपी एड्रेस है 172.16.0.42, तो आप https://myprefix.myapp.172.16.0.42.nip.io:1234अपने पीसी से या दूसरे पीसी से अपने इंट्रानेट में इस्तेमाल कर सकते हैं ।
m808020

6

विंडोज उपयोगकर्ताओं के लिए, इस उत्तर और इस टिप्पणी के आधार पर , आप इस पथ पर रहने वाली मेजबानों फ़ाइल के माध्यम से लोकलहोस्ट में पोर्ट जोड़कर इसे प्राप्त कर सकते हैं :

C:\Windows\System32\drivers\etc\hosts

और निम्न पंक्तियों को इसके जैसे जोड़ें:

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

1

विंडोज के लिए एक-लाइन समाधान

व्यवस्थापक के रूप में PowerShell खोलें और जो भी आप चाहते हैं , उसके स्थान पर निम्न कमांड चलाएँ ।sub.mydomain.com

"`n127.0.0.1    sub.mydomain.com" | Out-File C:\Windows\System32\drivers\etc\hosts -encoding ASCII -append

टूट - फूट:

  • `n - नई पंक्ति
  • 127.0.0.1 - लूपबैक पता
  • sub.mydomain.com - डोमेन नाम
  • | Out-File C:\Windows\System32\drivers\etc\hosts - स्ट्रिंग को पाइप करें hosts
  • -encoding ASCII - सही एन्कोडिंग
  • -append- फ़ाइल के अंत में संलग्न (महत्वपूर्ण!)

1

आपको इस .testतरह से चीजों के लिए डोमेन का उपयोग करना चाहिए । जो है उसके .testलिए है localhostकोई उप डोमेन नहीं माना जाता है।

ऐसा करने के लिए अनुमोदित RFC मानकों का उल्लंघन है। localhostएक रिकॉर्ड और IPv6 वातावरण में, एक AAAA रिकॉर्ड है। SOA सहित अन्य सभी DNS रिकॉर्ड प्रकार वर्जित हैं।

SOA रिकॉर्ड के बिना, यह एक ज़ोन एपेक्स नहीं हो सकता है जिसमें सब-रिकॉर्ड हो, इसलिए कोई उप-डोमेन या न ही प्रतिनिधिमंडल की अनुमति नहीं है। यहां तक ​​कि हाल ही में RFC के ड्राफ्ट का नाम लोकलहोस्ट होना चाहिए लोकलहोस्ट इसी के अनुरूप है।

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