问题
在安装WordPress完成后,wp-login界面无法登陆,点击登录按钮后界面直接刷新,没有用户名密码错误的提示,控制台显示Mixed Content。
在网上查找了很多办法,包括清理缓存,更换主题,删除插件等等,但大多数方案都不是针对新安装的WordPress。参照之前的这篇文章的解决方案后,加载页面直接报错,显示重定向的次数过多( ERR_TOO_MANY_REDIRECTS )。
原因
这次的WordPress使用了反向代理,并且由反向代理服务器负责SSL证书以及http请求的转发,因此在wp-config.php中直接强制使用SSL安全连接会触发错误。
解决方案
额外加入代码识别转发的https请求并加以处理。在wp-config.php中加入以下代码即可:
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';