24

我有这个规则:

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

例如,如何更改它以使其仅适用于特定域www.domain.com

4

1 回答 1

48

你需要一个重写条件:

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

在你的重写规则之前。

如果您在规则之前列出多个重写条件,则每个条件都必须匹配才能执行 RewriteRule,例如:

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$

以便在上述任何条件匹配时执行 RewriteRule。

有关详细信息,请参阅http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond

于 2012-05-28T13:40:47.757 回答