首页 / 技术 / 正文

WordPress网站出现重定向循环解决方式

2013年05月26日 1 条评论 ... 技术

有野出没是我最后一个搬家的wordpress网站,但是令人纠结的是,此次搬家并不是原先设想的那么简单,出现了很多问题,一不小心出现了重定向循环,具体表现是IE打不开,Chrome提示“此网页包含重定向循环”,但是如果手动输入wordpress后台或者内页地址,可以打开并且正常访问,但只有首页不能使用。

Chrome重定向循环

这是一个很棘手的问题,因为网站不能访问的时间越长,造成的损失越大,不过在我的全力抢救下,网站终于在48小时内解决了,损失很严重,特别写了此篇文章,供大家参考。

出现这种问题我最早想到的原因是域名服务商方面的设置出现了问题,因为我记得我初来乍到那段时间竟然将两个域名相互进行301重定向,然后导致了出现了重定向循环的现象。介于现在出现的情况,很可能产生的原因是带WWW和不带WWW域名之间的301重定向出现了问题。但是无论我怎么设置域名的A记录和NS记录,都不管用。由于域名的解析设置需要一段时间才能生效,所以在这里浪费了很多时间,但是依旧不管用。我仔细核实了一遍域名设置,发现域名设置根本没有如何问题。

有一点需要注意的是,网站是除了主页不能访问之外其他的内页都能访问,这只能说明就是301重定向出现了问题。仔细思考了一下,发现,除了域名服务商可以设置重定向,网站根目录下的.htaccess也能设置301重定向。我找到根目录,找到了.htaccess。内容是这样的:

RewriteEngine on

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTP_HOST} ^uye8.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.uye8.com$
RewriteRule ^/?$ "http://www.uye8.com/" [R=301,L]

先全部删掉,发现包括首页和内页什么网页也不能访问了,看来前面的wordprss打头的部分是wordpress必须的文件,然后我试着吧后面的三行语句删除掉了,测试的结果是可以正常访问主页了,但是另外的问题迎刃而来,原本我设置好的不带www的域名跳转到带www的域名上已经失效了,很明显,问题的根源越来越清楚,一定是后面三个语句出现的问题。

我根本不怎么懂.htaccess的写法,所以上网上搜索了一下,发现要么就是太简单就是太复杂,于是我关掉了网页,之间研究了一下这最后的代码,根据我的理解:

RewriteCond %{HTTP_HOST} ^uye8.com$ [OR]  //这句话的意思可能是 当访问uye8.com的时候,或者……
RewriteCond %{HTTP_HOST} ^www.uye8.com$  //意思可能是 当访问www.uye8.com的时候
RewriteRule ^/?$ "http://www.uye8.com/" [R=301,L] //意思可能是 当上面的情况发生的时候就跳转到www.uye8.com网址。

根据我的推理,如果真的是这样的话,确实有一个死循环,当访问www.uye8.com的时候就激活了后面的结果:访问www.uye8.com,而这同时又是一个激活条件。

于是我试着删除了第二行代码,结果网站不能访问了。回过头之后又将第一行代码的“[OR]”删除掉,总算是成功了。

最终的.htaccess代码如下:

RewriteEngine on

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTP_HOST} ^uye8.com$
RewriteRule ^/?$ "http://www.uye8.com/" [R=301,L]

对于这个问题,在网上搜索过,很多情况下发生在新版wordpress程序中,同时也多发生在搬家的网站中,不过,网上流传的方法都过于繁琐,而且要修改wordpress内核文件,对wordpress的稳定性会有一定影响。其实,出现这种问题的原因肯定是301重定向出现的问题,而能改变301的除了域名服务商之外,也只能是.htaccess了。

1 条评论

Loading...
  1. 鲜活优惠码

    :evil: 收藏 希望不要用上!

    2013-05-27 [回复]

发布评论