2012-05-28 55 views
17

我有這樣的規則:如何讓.htaccess RewriteCond檢查域名?

RewriteRule ^(about|installation|mypages|privacy|terms)(/)*$  
/index.php?kind=portal&id=1&page=$1&%{QUERY_STRING} [L] 

我怎樣才能改變它,以便它只會工作一個特定領域,www.domain.com例如?您的重寫規則之前

RewriteCond %{HTTP_HOST} ^www.domain.com$ 

回答

30

你需要重寫條件。

如果您的規則之前列出幾個重寫條件,他們每個人都必須爲重寫規則要執行匹配,例如:

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteCond %{HTTP_HOST} ^www.domain2.com$ 

這當然會無法正常工作,因爲HTTP_HOST不能包含兩者同時值。

然後,必須使用[OR]改性劑:

RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.domain2.com$ 

使得重寫規則是,如果執行的任何上述條件匹配的。

有關更多信息,請參閱http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond