2011-05-16 50 views

回答

1

。在你的重寫規則極少數的變化來解決這個很好

RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC] 
RewriteRule ^(.*)$ /%1/$1 [L] 

你應該在重寫規則使用$。希望這對你有所幫助。

0

如果你已經知道的子域,您可以:

RewriteCond %{REMOTE_HOST} ^(?:www\.)?subdomain\.your_domain\.com [NC] 
RewriteRule ^(.*) /subdomain/$1 [L] 

如果你想支持任何可能的子域,使用:

RewriteCond %{REMOTE_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC] 
RewriteRule ^(.*) /%1/$1 [L] 
+0

對不起,但不適合我。爲了您的信息,當我使用子域名時,它無處可尋。瀏覽器說找不到服務器。 – Tareq 2011-05-16 20:58:02

+0

然後,您需要將子域添加到您的DNS。上面假設子域可以訪問,並指向運行mod_rewrite的網絡服務器。 – 2011-05-16 21:57:31

+0

mod_rewrite在我的Web服務器中啓用。如果我使用通配符(*)子域沒有結果然後。我該怎麼辦 ? – Tareq 2011-05-17 03:50:53

2

您應該使用%{HTTP_HOST}而不是%{REMOTE_HOST}。這是因爲%{REMOTE_HOST}%{REMOTE_ADDR}上的反向DNS查找的結果,如果啓用了HostnameLookups

所以您的規則應該是

RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC] 
RewriteRule ^(.*) /%1/$1 [L]