htaccess重写规则拾取子域时不应该

时间:2015-07-17 10:25:55

标签: regex apache .htaccess mod-rewrite redirect

我最近切换了主机,并使用以下规则强制使用www。对于/ public_html /

中的根站点
# RewriteCond %{HTTP_HOST} !^www\.rootdomain\.com$
# RewriteRule (.*) http://www.rootdomain.com/$1 [R=301,L]

虽然我有:

,但它运作良好
public_html/otherdomain.com (has it's own htaccess)
public_html/otherdomain2.com (doesn't have it's own htaccess)

在新主机中,我的添加域名设置相同。当我去:

otherdomain.com - 它运作正常。

当我去:

otherdomain2.com它重定向到rootdomain.com/otherdomain2.com

试验和错误显示它是上面的重写规则。

1 个答案:

答案 0 :(得分:1)

要避免匹配子域,请使用此规则:

RewriteCond %{HTTP_HOST} ^rootdomain\.com$ [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]