2011-09-01 16 views
11

में किसी डोमेन/उप-डोमेन के आधार पर DirectoryIndex बदलें। मेरे पास एक डोमेन और एक उप-डोमेन (मोबाइल और क्लाइंट के लिए) के साथ साझा होस्टिंग है। प्रत्येक डोमेन और उप-डोमेन में अलग-अलग डिफ़ॉल्ट अनुक्रमणिका पृष्ठ होते हैं। होस्टिंग कंपनी ने मुझे अपनी .htaccess फ़ाइल में सब कुछ डालने के लिए कहा क्योंकि मेरे पास httpd.conf तक पहुंच नहीं है।.htaccess

इस मुझे क्या करना चाहते हैं:

  1. एक उपयोगकर्ता domain1.com को जाता है तो DirectoryIndex होना चाहिए: एक उपयोगकर्ता mobile.domain1.com को DirectoryIndex होना चाहिए चला जाता है index.html
  2. हैं: mobile-index.html
  3. एक उपयोगकर्ता DirectoryIndex post.domain1.com होना चाहिए हो जाता है: post.php
  4. एक उपयोगकर्ता DirectoryIndex vote.domain1.com होना चाहिए हो जाता है: vote.php

संपादित करें: इसके अलावा, अगर मैं domain1.com/page/ करने के लिए जाना DirectoryIndex होना चाहिए: index.html। अगर मैं mobile.domain1.com/page/ करने के लिए जाना DirectoryIndex होना चाहिए: mobile-index.html

क्या मैं क्रम में मेरी .htaccess फाइल में डाल सकते हैं प्रत्येक उप डोमेन के लिए DirectoryIndex बदलने के लिए?

तुम बहुत मीच

उत्तर

18

<IfDefine> उस तरह काम नहीं करता। <IfDefine> केवल अपाचे शुरू होने पर ही चलता है। आपको mod_rewrite समाधान के साथ जाना चाहिए। @tzakrajs जवाब देखें।

आप अपनी .htacces फ़ाइल में इस का उपयोग कर सकते हैं:

SetEnvIf Host ^www\. page=www 
SetEnvIf Host ^mobile\. page=mobile 
rewriterule ^.*$ test.php?subdomain=%{ENV:page} [QSA,L] 

आप सिर्फ अपने सभी सब-डोमेन SetEnvIf का उपयोग कर कॉन्फ़िगर और फिर बस पीएचपी अपना जादू करते हैं।

+2

स्पष्टीकरण के लिए धन्यवाद। SetEnvIf के लिए धन्यवाद, मुझे लगता है कि इसे लागू करने के लिए आसान तरीका है (4 अलग-अलग फाइलें बनाने के बजाय)। धन्यवाद – Tech4Wilco

+0

दूसरे शब्दों में: '' अपाचे शुरू होने के बाद गतिशील नहीं है। – Geremia

2

इस प्रयास करें धन्यवाद:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^domain1.com$ 
RewriteRule ^.*/$ index.html [R=302,L] 
RewriteCond %{HTTP_HOST} ^mobile.domain1.com$ 
RewriteRule ^.*/$ mobile-index.html [R=302,L] 
RewriteCond %{HTTP_HOST} ^post.domain1.com$ 
RewriteRule ^.*/$ post.php [R=302,L] 
RewriteCond %{HTTP_HOST} ^vote.domain1.com$ 
RewriteRule ^.*/$ vote.php [R=302,L] 
+0

धन्यवाद कि लैंडिंग पृष्ठ के लिए काम करता है, लेकिन यह उप फ़ोल्डर के लिए काम नहीं करता। उदाहरण के लिए mobile.domain1.com/page/ को मोबाइल-index.html – Tech4Wilco

+0

लोड करना चाहिए ठीक है, मैंने नियमों को संशोधित किया है ताकि वे किसी भी उपनिर्देशिका से मेल खा सकें (उदा: डोमेन 1.com/fdskjfkls/ index.html पर रीडायरेक्ट करेगा) – tzakrajs

+0

यह करता है लेकिन इस पर रीडायरेक्ट नहीं करता है: domain1.com/fdskjfkls/index.html और mobile.domain1.com/fdskjfkls/mobile.html – Tech4Wilco

-1

आप इस तरह सिर्फ oyur .htaccess फ़ाइल का उपयोग कर सेट कर सकते हैं:

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC] 
RewriteRule DirectoryIndex index.html 

RewriteCond %{HTTP_HOST} ^mobile.domain.com$ [NC] 
RewriteRule DirectoryIndex mobile-index.html 

... 
+0

यह काम नहीं करता .... – Laxman

+0

@ लक्ष्मण आपको वोट देने की आवश्यकता नहीं है क्योंकि यह आपके लिए काम नहीं करता है – CIRCLE