2011-09-29 12 views
6

मैं इसी फ़ोल्डरों को वाइल्डकार्ड उप डोमेन रीडायरेक्ट करने के लिए निम्नलिखित का उपयोग कर रहा:इनको आधुनिक-पुनर्लेखन के उप करने के लिए

RewriteCond %{REQUEST_URI} !^/users/ [NC] 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteCond %1 !=www [NC] 
RewriteRule ^(.*)$ /users/%1/$1/? [L] 

मैं रीराइट नियम है कि किसी को प्रत्यक्ष/उपयोगकर्ताओं/पथ तक पहुँचता पुनर्निर्देश जोड़ना चाहते हैं इस तरह के सब-डोमेन संस्करण पर वापस:

www.domain.com/users/username/../../ => username.domain.com/../../ 

अग्रिम धन्यवाद!

उत्तर

10

कुछ इस तरह:

RewriteEngine On 

RewriteCond %{http_host} ^domain.com [nc] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC] 

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
RewriteRule ^users/([a-z0-9\-_\.]+)/?(.*)$ http://$1.domain.com/$2 [QSA,NC,R,L] 

आप सवाल पर सूचीबद्ध एक के अलावा अन्य नियमों है? यदि हां, तो इन्हें दूसरे के सामने रखें।

जैसे:

http://www.domain.com/users/abc?q=test => http://abc.domain.com/?q=test 
http://www.domain.com/users/abc/sub1/sub2 => http://abc.domain.com/sub1/sub2 
http://www.domain.com/users/abc/sub1/?q=test => http://abc.domain.com/sub1/?q=test 
+0

धन्यवाद! हालांकि यह केवल ../users/username => username.domain.com के लिए काम करता प्रतीत होता है, मुझे इसे ../users/username/sub1/sub2/ => username.domain.com/sub1/sub2 के लिए भी काम करने की आवश्यकता है । क्या यह संभव है? – dSquared

+0

मैंने अपना उत्तर अपडेट किया –

+0

बहुत बहुत धन्यवाद! यह सही काम करता है, www.domain.com और domain.com दोनों संस्करणों पर काम करने के लिए इसे किसी भी मौके पर बनाया जा सकता है? – dSquared

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