我有这个规则:

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$

在您的重写规则之前。

如果在规则之前列出了几个重写条件,则每个条件都必须匹配才能执行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

关于.htaccess - 如何使.htaccess RewriteCond检查域名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10785475/

10-14 17:53