重定向非www子域

时间:2012-01-31 04:45:48

标签: .htaccess

使用这些指令,我可以将任何non-www子域重定向到www子域:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我需要实现的是仅重定向www子域。

例如,我想仅将blog.myname.com重定向到www.blog.myname.com。上面配置中的规则会将blog.myname.com重定向到www,但它也会将myname.com重定向到www.myname.com,这不是我想要的。我还需要重定向所有查询的子域而不仅仅是blog.myname.com

我该怎么做?

2 个答案:

答案 0 :(得分:2)

尝试:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog\.myname\.com$ [NC]
RewriteRule ^ http://www.blog.myname.com{REQUEST_URI} [L,R=301]

答案 1 :(得分:2)

您可以使用此代码来实现:

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

以上代码重定向所有子域但不会影响myname.comwww.myname.com