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

如何更改.htaccess以将所有非www链接重定向到www页面?,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,如何将所有非www链接重定向到www链接?我在互联网上找到了解决方案,但它们只重定向域名。 我如何将其概括为: http://example.com/testing 应该重定向到http://www.example.com/testing?试试这样的方法 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 试试这样的 RewriteEn

如何将所有非www链接重定向到www链接?我在互联网上找到了解决方案,但它们只重定向域名。 我如何将其概括为:
http://example.com/testing 应该重定向到http://www.example.com/testing?

试试这样的方法

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

试试这样的

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
如果您需要适用于任何域的通用工具,可以尝试以下方法:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+)$
RewriteRule ^(.*)$ http://www.%1/$1
如果您需要适用于任何域的通用工具,可以尝试以下方法:

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

啊,没有意识到你可以在重写规则中使用服务器变量,这很好。谢谢!你能解释一下代码吗。我是htaccess的新手,正在尝试解决这个问题;第二行检查主机名域是否以www开头,如果不是,则执行重写规则。规则很简单——只需在主机名的开头添加www;R=301使其成为搜索引擎利益的永久重定向,L意味着这是链中的最后一条规则。在执行此规则之后,无重写规则。第一行启用重写引擎。第二行检查regexp“^www”,这意味着根据HTTP_主机服务器变量简单地检查www,后跟句点;有效地包含用户正在访问的站点的域名。如果域的开头不包含www.at^表示字符串的开头,并且!在这意味着它否定regexp之前,它会检查www.是否不在字符串的开头,然后它会简单地将当前路径附加到带有前缀www的域中。上面提到的是通用的,应该可以在Chrome中重定向所有URLhttp://example.com/testing 到http://www.example.com/testing? 我正在努力使它工作,但没有结果。。。代码过时了?谢谢,啊,没有意识到你可以在重写规则中使用服务器变量,这很好。谢谢!你能解释一下代码吗。我是htaccess的新手,正在尝试解决这个问题;第二行检查主机名域是否以www开头,如果不是,则执行重写规则。规则很简单——只需在主机名的开头添加www;R=301使其成为搜索引擎利益的永久重定向,L意味着这是链中的最后一条规则。在执行此规则之后,无重写规则。第一行启用重写引擎。第二行检查regexp“^www”,这意味着根据HTTP_主机服务器变量简单地检查www,后跟句点;有效地包含用户正在访问的站点的域名。如果域的开头不包含www.at^表示字符串的开头,并且!在这意味着它否定regexp之前,它会检查www.是否不在字符串的开头,然后它会简单地将当前路径附加到带有前缀www的域中。上面提到的是通用的,应该可以在Chrome中重定向所有URLhttp://example.com/testing 到http://www.example.com/testing? 我正在努力使它工作,但没有结果。。。代码过时了?谢谢