前天本站移到了个香港主机上,结果这两天发现个问题,就是后台状态按钮后会自动跳转到首页。
![个别主机下PbootCMS后台点击状态按钮后自动跳转到首页 个别主机下PbootCMS后台点击状态按钮后自动跳转到首页](https://www.cmstui.com/wp-content/uploads/2023/07/cc0ecc6e7ebca8cbf51b4e737ccda636.gif)
经过排查终于把问题对准了主机,因为是换主机后才出现的,然后通过检查代码执行,最后helper.php发现了这个
![个别主机下PbootCMS后台点击状态按钮后自动跳转到首页 个别主机下PbootCMS后台点击状态按钮后自动跳转到首页](https://www.cmstui.com/wp-content/uploads/2023/07/bb458a9853825bbe07fbf896f37d95cc.png)
就是无法通过这个判断导致跳转到首页,那么继续往get_http_url方法里找,然后handle.php发现这个
![个别主机下PbootCMS后台点击状态按钮后自动跳转到首页 个别主机下PbootCMS后台点击状态按钮后自动跳转到首页](https://www.cmstui.com/wp-content/uploads/2023/07/7e92bfb1650ede6344cb2b681f98ad01.png)
经过打印判断出问题出在$_SERVER[‘HTTPS’],本来其他主机输出的都是小写的on,我这台主机确实大写的ON,linux系统对大小写是严格的,无法通用,所以这里的判断就会过不了得出当前的链接是http,但其实本站使用的https,那么来修复下,在上面截图的代码里增加个ON判断,如下:
// 判断当前是否为https,增加ON判断 function is_https() { if ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 'ON')) || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) { return true; } else { return false; } }
到此再次点击后台状态按钮,一切正常了。
© 版权声明
文章搜集于网络,如有侵权请联系本站,转载请说明出处。
THE END
暂无评论内容