刚安装WordPress的时候,总是登录失败,进入再次输入密码的死循环。开始以为是Apache无法被外网读取的问题。经过几番设置之后,确实觉得没有哪里配置错了,但还是登录失败。后来以为是Php无法连接到mysql,又在网上研究了一番php的配置,可还是无法解决。于是干脆查WordPress无法登录,立刻就发现很多人都出现了这个问题。
在经过多种方法的试验之后,终于确定是因为无线路由器和cookie目录的原因。WordPress真是太变态了!!下面是我把人家的解决方案转过来,希望对其他想用WordPress的朋友起到帮助。
通过无线路由上网,无法登陆wordpress后台,症状为输入用户名密码之后仍旧返回登陆界面。当然以前是好的,换任何浏览器和操作系统都一样,并且在别人电脑上是没问题的。(wordpress 2.9.2,wordpress 3.0)”
解决方法
打开文件”/wp-includes/pluggable.php“,修改wp_set_auth_cookie函数。
将(两处,第一处在666行左右,第二处就在后面几行,基本上改第一处就可以了,wordpress 2.9.2;wordpress 3.0 在691行)
setcookie($auth_cookie_name, $auth_cookie, $expire, ADMIN_COOKIE_PATH, COOKIE_DOMAIN, $secure, true);
修改为:
setcookie($auth_cookie_name, $auth_cookie, $expire, SITECOOKIEPATH, COOKIE_DOMAIN, $secure, true);
后话
主要就是更改cookie的作用目录,由原来的“/wp-admin”变成根目录“/”。问题大概是由于无法跨目录读取用户的cookie导致的(参见pluggable.php中的函数wp_parse_auth_cookie)。
wordpress跨目录无法读取的cookie

