2012-01-31 152 views
1

使用这些指令,我可以在任何non-www子域名重定向到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.comwww,但它也将myname.com重定向到www.myname.com,这不是我正在寻找的。我还需要重定向所有查询的子域名,不只是blog.myname.com

我该怎么做?

回答

2

您可以使用此代码来实现这一目标:

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

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

+0

其实你的代码将所有的subdomain.myname.com重定向到www.myname.com谢谢你试图帮助我:) – sg552 2012-01-31 05:20:02

+0

这就是你写的时候想要的:'我还需要重定向所有查询的子域,而不仅仅是blog.myname。 com' – anubhava 2012-01-31 05:31:38

+0

实际上我的意思是将所有查询的非www子域重定向到www子域。例如* .myname.com重定向到www。* myname.com。但现在可以工作了。再次感谢:) – sg552 2012-01-31 05:41:49

2

尝试:

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

嘿谢谢。我需要移除{REQUEST_URI}才能使其正常工作。我可以问我如何重定向所有子域,而不仅仅是blog.myname.com?我会更新这个问题。 – sg552 2012-01-31 05:04:49