2012-11-26 15 views
14

का उपयोग करते हुए मैं इस स्थिति करना चाहते हैं:बनाना वाइल्डकार्ड उप डोमेन अपाचे VirtualHost

  1. अगर यह URL का उपयोग कर उपयोगकर्ता अनुरोध: example.com या www.example.com, उपयोगकर्ता index.php इस निर्देशिका में देखेंगे /home/admin1/public_html/

  2. लेकिन जब उपयोगकर्ता अन्य उप डोमेन (वाइल्डकार्ड) का उपयोग करने का अनुरोध करता है उदाहरण के लिए: freediscount.example.com, उपयोगकर्ता इस पथ में index.php देखेंगे: /home/admin1/public_html/userweb/freediscount.example.com

  3. कि ट्यूटोरियल के आधार पर, पीएचपी एक नया काम है ... विशेष फ़ोल्डर पर रीडायरेक्ट करने के लिए जब उप डोमेन के साथ उपयोगकर्ता अनुरोध: मेरे होस्टिंग पर

तकनीकी सहायता मुझे इस विधि का उपयोग करने के लिए सुझाव देते हैं। मुझे यह विधि पसंद नहीं है। मेरे लिए, अगर अपाचे इसे संभाल सकता है तो बेहतर होगा।

है कि मैं क्या जरूरत है इस विधि है के लिए लगभग करीब: Virtualhost For Wildcard Subdomain and Static Subdomain

लेकिन, मैं VirtualHost की स्थापना, कैसे उस स्थिति के लिए सही ढंग से VirtualHost बनाने के लिए साथ एक समस्या है?

यहाँ मैं क्या किया है लेकिन काम नहीं किया है:

## I think this one is for www or without www, automatically generated with WHM 
<VirtualHost xx.xx.xx.xx:80> 
ServerName example.com 
ServerAlias www.example.com 
DocumentRoot /home/admin1/public_html 
</VirtualHost> 

## Here's what I'm trying to add 
<VirtualHost xx.xx.xx.xx:80> 
    ServerName example.com 
    DocumentRoot /home/admin1/public_html/userweb/* 
</VirtualHost> 

उत्तर

14

वाइल्डकार्ड उप डोमेन डोमेन अपाचे वर्चुअल होस्ट का उपयोग करके निश्चित रूप से संभव हैं।

मूल रूप से वही आवश्यकताएं थीं और इसे अपाचे के mod_vhost_alias.so मॉड्यूल के साथ काम करने में कामयाब रहा। अपने http-vhosts.conf फ़ाइल में इस प्रयास करें:

DocumentRoot "/home/admin1/public_html/userweb/" 
<Directory "/home/admin1/public_html/userweb/"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    VirtualDocumentRoot /home/admin1/public_html/userweb/%1.example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

ध्यान दें कि मैं इस परीक्षण नहीं किया है, लेकिन यह बहुत समाधान है कि मेरे लिए काम किया के काफी करीब है। मेरी समाधान के

पूर्ण विवरण यहां हैं: http://www.calcatraz.com/blog/wildcard-subdomains-in-apache-1422

+0

आज के रूप में मृत लिंक। – kontur

8

इस के साथ प्रयास करें:

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/userweb/freediscount.example.com 
    ServerName other.example.com 
    ServerAlias *.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

आभासी मेजबान & उनकी विशिष्टता मामलों के आदेश।

+0

freediscount.example.com सिर्फ एक उदाहरण है। वास्तविक दुनिया में, उपयोगकर्ता उनके द्वारा बनाए गए सबडोमेन टाइप कर सकते हैं। उदाहरण के लिए: mystore.example.com >> /home/admin1/public_html/userweb/mystore.example.com –

+0

इसलिए मुझे यह नहीं लगता कि यह स्थिर दस्तावेज़ रूट इस समस्या को हल करेगा। यह गतिशील है। –

+0

आप वाइल्डकार्ड DocumentRoots नहीं बना सकते हैं। आपको .htaccess फ़ाइल या php के माध्यम से ऐसा करने की ज़रूरत है। वर्चुअलहोस्ट्स के साथ आप यही कर सकते हैं। माईबे आप जो चाहते हैं उसकी देखभाल करने के लिए अपाचे मोड है। लेकिन जैसा है, यह मुझे लगता है। –

संबंधित मुद्दे