सभी कैच * (वाइल्डकार्ड) उपनाम का उपयोग करते हुए Apache2 serverAlias ​​से विशिष्ट डोमेन को छोड़ दें


10

मेरे पास एक वेब एप्लिकेशन है जिसे कस्टम डोमेन का समर्थन करने की आवश्यकता है, इस संबंध में मैंने निम्नलिखित नाम आधारित वर्चुअल सर्वर स्थापित किया है:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    RackEnv production
    DocumentRoot /srv/www/example/current/public
    <Directory /srv/www/example/current/public>
             AllowOverride all
             Options -MultiViews FollowSymLinks
    </Directory>
    ErrorLog /srv/www/example/log/error.log
    TransferLog /srv/www/example/log/access.log
</VirtualHost>

सर्वर उपनाम के रूप में * नोटिस? उस सर्वर पर सभी डोमेन को पकड़ता है। हालाँकि, मेरे पास इस सर्वर पर अन्य साइटें हैं जिन्हें मैं इस सूची से बाहर रखना चाहता हूं। यह मेरे लिए अधिक किफायती है कि प्रत्येक डोमेन को मैन्युअल रूप से सेट करने की तुलना में बहिष्कृत डोमेन की एक सूची होनी चाहिए जो एक उपयोगकर्ता इस सेवा में सर्वरएलाइज़ के रूप में पंजीकृत हो सकता है ...

शायद यह जाने का सबसे अच्छा तरीका नहीं है, लेकिन मैं एक वेब-ऐप स्थापित करने के लिए सबसे अच्छे (अपेक्षाकृत सरल) तरीके से मदद की तलाश कर रहा हूं, जो किसी भी डोमेन को पकड़ सकता है, जबकि अन्य विशिष्ट डोमेन को अलग-अलग ऐप में रूट करने की अनुमति देता है ।

जवाबों:


12

अपाचे एक मैच के क्रम में खोजते हैं जो डोमेन परिभाषित किए गए हैं। अगर मैं आपको समस्या को सही ढंग से समझता हूं तो यह आपके मेजबान को परिभाषित करने से हल किया जा सकता है ताकि सभी मेजबान को पकड़ने से पहले बाहर रखा जा सके।

<VirtualHost *:80>
    ServerName excluded.example.com
    ServerAlias  something.example.com ...
    ...
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    ...
</VirtualHost>

1
हां, आप सही हैं, लेकिन मैं इस बात से हैरान हूं कि यह डिफ़ॉल्ट उबंटू 10.4 स्टैक पर कैसे किया जाता है, जहां एक साइट-उपलब्ध और साइटों-सक्षम निर्देशिकाओं द्वारा पूरे शेंनिगैंस का प्रबंधन किया जाता है, और प्रत्येक वर्चुअल होस्ट परिभाषा अपने आप में मौजूद है फ़ाइल ... मैं उस स्थिति में आदेश को कैसे नियंत्रित करूं?
विक्टर एस

फ़ाइलों को अल्फाबेटिक ऑर्डर (एलएस के लिए डिफ़ॉल्ट सॉर्ट ऑर्डर) में लोड किया गया है।
user9517

1
एक साइट परिभाषा के लिए जिसे पहले आने की आवश्यकता है, इसे कुछ नाम दें जैसे 000-excluded.example.com.confकि साइट-उपलब्ध दिर में।
ब्रायन मिंटन

मैं बिल्कुल वैसा ही काम करना चाह रहा था, और यह मेरे लिए काम नहीं करता है। अपवर्जित .example.com VirtualHost, जिसमें "ServerName बहिष्कृत .example.com \ n पुनर्निर्देशित / example.com/excluded " था, और अधिक सामान्य VirtualHost के लिए सभी अनुरोधों को पुनर्निर्देशित करने के लिए हुआ (जो निश्चित रूप से विन्यास में विशिष्ट Virtualost के बाद था)।
क्वासमन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.