2015-03-03 70 views
1

我路由所有非www请求到WWW的域名使用此RewriteCondRewriteRule正向非www到www除了特定子域

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L] 

但有一个特定的子域,我想排除,例如blog.mydomain.tld。如何修改我的条件和规则以实现此目标?

回答

2

你可以只添加子域名在您的正则表达式的RewriteCond

RewriteEngine On 

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

感谢您的帮助(再次)!我会奖励@Lepanto,因为他仍然处于低位区域。 – 2015-03-03 08:07:32

+0

当然,这是您的特权,但应避免重复使用相同变量来提高规则执行的整体效率。请记住,这些规则会针对每个Web请求进行解析和执行。 – anubhava 2015-03-03 08:10:32

+1

这是一个有效的论点。谢谢你指点我。 – 2015-03-03 08:26:25

1

你尝试加入

RewriteCond %{HTTP_HOST} !^www\.  
RewriteCond %{HTTP_HOST} !^blog\. 
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]