在使用 HTTPS 或 CDN 时,PbootCMS 的后台功能可能会因为环境差异而出现异常,特别是在开启关闭按钮、删除、以及保存排序等功能操作后会直接重定向到首页。这是由于 PbootCMS 在判断是否为 HTTPS 时存在问题。以下是详细的解决方案:
问题描述
在 HTTPS 或 CDN 环境下,PbootCMS 的后台功能可能出现异常,主要表现为:
- 开启关闭按钮操作后重定向到首页
- 删除操作后重定向到首页
- 保存排序操作后重定向到首页
原因分析
造成该问题的主要原因是 PbootCMS 在判断是否为 HTTPS 时的逻辑不完善,导致在某些主机环境下无法正确识别 HTTPS 请求。
解决方案
-
备份文件:
- 在进行任何修改之前,建议先备份
handle.php
文件,以防修改出错后可以快速恢复。
- 在进行任何修改之前,建议先备份
-
定位文件:
- 找到
handle.php
文件,路径通常为网站目录/core/function/handle.php
。
- 找到
-
修改代码:
- 打开
handle.php
文件,找到第 619 行左右的is_https
函数。 - 将原来的代码替换为以下代码:
- 打开
// 判断当前是否为https
function is_https() {
$isSsl = false;
if (getenv('HTTPS') && ('1' == getenv('HTTPS') || 'on' == strtolower(getenv('HTTPS')))) {
$isSsl = true;
} elseif ('https' == getenv('REQUEST_SCHEME')) {
$isSsl = true;
} elseif ('443' == getenv('SERVER_PORT')) {
$isSsl = true;
} elseif ('https' == getenv('HTTP_X_FORWARDED_PROTO')) {
$isSsl = true;
} elseif ('https' == getenv('HTTP_X_CLIENT_SCHEME')) {
$isSsl = true;
}
return $isSsl;
}
具体操作步骤
1. 备份文件
- 使用 FTP 客户端:
- 使用 FTP 客户端(如 FileZilla)连接到你的服务器。
- 导航到
网站目录/core/function
目录。 - 下载
handle.php
文件到本地,以便备份。