如何更改.htaccess将所有非www链接重定向到www页面?

问题描述:

如何将所有非www链接重定向到www链接?我在互联网上找到了解决方案,但他们只重定向域名。 我该如何制作这个一般的: http://example.com/testing应该重定向到http://www.example.com/testing如何更改.htaccess将所有非www链接重定向到www页面?

尝试这样的事情

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

啊,没想到你可以使用重写规则中的服务器变量,这很好。 – 2009-11-02 08:07:16

+0

谢谢!你能解释一下这个代码吗?我是新来的htaccess,并试图找出这一点。 – chris 2009-11-02 08:20:14

+1

当然,第一行显然启用了Apache上的URL重写;第二行检查主机名(域)是否以www开头,如果没有,则执行RewriteRule。规则很简单 - 只需将www添加到主机名的开头; R = 301使得这是一个永久的重定向(主要是为了搜索引擎的好处),而L意味着这是链中的最后一条规则(没有RewriteRule之后就会执行) – 2009-11-02 08:40:35

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 

如果你想要的东西一般,对于任何领域的作品,你可以尝试这样的:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} ^(.+)$ 
RewriteRule ^(.*)$ http://www.%1/$1