重定向到非www进入无限循环

时间:2015-07-31 05:29:23

标签: php .htaccess

我的htaccess重定向到非www。

有问题
RewriteEngine On
RewriteCond %{HTTP_HOST} (www.)?example.com
RewriteRule (.*) http://example.com/$1 [QSA,L,R=301]

它创造了一个无限循环,

如何在没有重定向错误的情况下重定向到非www?

2 个答案:

答案 0 :(得分:2)

试试这个

的.htaccess

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

希望它会有所帮助

答案 1 :(得分:0)

您的htaccess会将您网站的两个版本(www / non-www)重定向到非www,这就是它创建无限循环的原因。

尝试此操作仅将“www”版本重定向到“非www”。

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

解释:

^www\.example\.com$主播^$表示这是HTTP_HOST变量中的完整字符串,之前或之后都没有。因此,如果随请求一起传递的域名与www.example.com匹配,那么在正则表达式模式^(.*)$中匹配的整个URI字符串将重定向到example.com,从而从www.中剥离if前面。