2011-07-18 71 views
0

基本上我試圖做這個簡單的問題:Mod_rewrite通配符子域。就不是那麼簡單的重寫規則

subdomain.domain.com - > domain.com/account?user=subdomain

到目前爲止好。我發現這個代碼做到這一點,並完美的作品:

RewriteCond %{HTTP_HOST} !^domain\.com [NC] 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com$ 
RewriteRule ^(.*)$ account.php?user=%1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

現在我想添加一個更簡單的規則(用*標記)。添加這條新規則會使一切崩潰。沒有什麼工作了

RewriteCond %{HTTP_HOST} !^domain\.com [NC] 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com$ 
* RewriteRule ^/somepage http://domain.com/anotherpage [E=SUBDOMAIN:%1,L] 
RewriteRule ^(.*)$ account.php?user=%1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

任何想法是怎麼回事,以及如何糾正它?

謝謝 克特林

+0

應該做的新規則?也許你只需要把它放在另一個地方(如**規則重要**)。我相信即使是現有的規則也可以簡化。 – LazyOne

回答

1

一個重寫規則是受當前的一組的RewriteCond條件。

所以,你會做這樣的事情:

RewriteCond 
RewriteCond 
RewriteRule 


RewriteCond 
RewriteCond 
RewriteRule