从Rewritecond中排除子域

时间:2016-09-26 11:37:18

标签: apache .htaccess mod-rewrite url-rewriting

我没有找到一个与我目前相同RewriteCond的帖子。

我的根.htaccess按以下方式设置,因此重定向并自动将www添加到任何不包含www的网址:

Options -Indexes

RewriteEngine on

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

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_USER_AGENT} ^(BadBot1|BadBot2) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule ^.* - [F,L]

但是,我希望用户能够访问子域名sub.mydomain.com,因此需要排除此子域名。

怎么做?

1 个答案:

答案 0 :(得分:1)

添加以下行:

RewriteCond %{HTTP_HOST} !^sub\. [NC]

在:

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