解决WordPress后台重定向过多问题
网站刚配置好https就碰见了一个问题即登录WordPress后台的时候提示重定向的次数过多,网上找了很多办法解决这个问题,比如下面这个方法
如果使用云服务器配置https后wordpress后台无法登录提示将您重定向的次数过多,只需要在网站根目录的wp-config.php开头加入以下代码,即可完美解决此问题:
$_SERVER['HTTPS'] = 'on'; define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
又或者这个方法
首先使用phpmyadmin或其他管理工具将数据库中找到wp-options数据表,将里面option_name为siteurl和home的option_value值中的网址的http替换为https;
然后继续修改wp-includes/load.php这个文件,搜索is_ssl找到对应的函数,将$_SERVER[‘HTTPS’]修改为$_SERVER[“HTTP_FROM_HTTPS”](修改文件前请注意备份)。
或将此函数修改为:
function is_ssl() { if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){ return true; } elseif (isset($_SERVER["HTTP_FROM_HTTPS"])&&$_SERVER["HTTP_FROM_HTTPS"]=='on'){ return true; } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ return true; } else{ return false; } }
这两种方法或许对某种情况下有效,但我在修改过之后发现没有用,最终的我的解决方案是修改了伪静态,我使用的是Nginx服务器,只需要把伪静态规则修改为如下规则即可:
location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } }