我有这个规则:
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/