如何使的.htaccess的RewriteCond检查域名?(How to make .htacce

2019-07-29 14:29发布

我有这样的规则:

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

我怎样才能改变它,这样它只会工作一个特定领域, www.domain.com的例子吗?

Answer 1:

你需要重写条件:

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

之前你重写规则。

如果您的规则之前列出几个重写条件,他们每个人都必须要执行,例如,用于重写规则匹配:

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以获取更多信息。



文章来源: How to make .htaccess RewriteCond check domain name?