赞片CMShttps报错
按本文的顺序排查一遍,你能自己定位赞片CMS在开启 HTTPS 后出现的绝大多数报错:白屏、重定向循环、图片播放器不显示、后台登录失败。
赞片CMS本身对 HTTPS 没有特殊限制,报错基本都来自三处:服务器/证书层、后台域名配置层、页面里的写死 http 链接。下面按「从外到内」的顺序来,前一步没排除就不要跳到下一步。
第一步:先确认报错到底属于哪一类
这一步的目标是把笼统的「HTTPS 报错」缩小到具体错误码,拿到结果再决定后面查哪一步。
打开 Chrome 或 Edge,按 F12 打开开发者工具:
Console(控制台)面板 → 看有没有Mixed Content字样,有就是混合内容问题Network(网络)面板 → 刷新页面,看状态码是 301/302 反复跳、还是 502/504- 在地址栏点小锁图标 → 选「连接是安全的」→「证书有效」,看证书绑定的域名对不对
同时在服务器上跑一条命令,直接看响应头:
curl -I https://你的域名
如果上面报 ERR_TOO_MANY_REDIRECTS、ERR_SSL_PROTOCOL_ERROR、NET::ERR_CERT_COMMON_NAME_INVALID,分别对应重定向循环、SSL 协议错误、证书域名不匹配,三种原因完全不同。
注意:不要一上来就去找 CMS 后台设置。证书和重定向问题改后台是改不好的,浪费时间。
第二步:解决重定向循环(最常见)
这一步要断开「http 跳 https、上游又说自己是 http」的死循环,做完页面能正常打开。
原因通常是套了 CDN(如 Cloudflare)或 Nginx 反向代理,源站以为自己是 http,又一次次把请求跳回 https。处理方式:
如果用了 Cloudflare,进入 Cloudflare 后台 → 选择域名 → SSL/TLS → Overview → 加密模式选 Full (strict),不要选 Flexible。
如果是 Nginx 反向代理,在站点的 server 配置里补上这两行,然后 nginx -t 检查、nginx -s reload 重载:
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
如果赞片CMS跑在 PHP-FPM 上,还要确保 FastCGI 段落里有:
fastcgi_param HTTPS on;
注意:改完配置必须
nginx -t通过再 reload,语法错误会让整站 502。
第三步:把后台里的网站域名改成 https
这一步解决「前台 https、后台生成出来的链接还是 http」的问题。
登录赞片CMS后台 → 左侧菜单 系统 → 网站设置(部分版本叫「基本设置」)→ 找到 网站域名 / 站点地址 一栏,改成 https://你的域名。
注意:结尾不要加斜杠,写成
https://abc.com/会让部分模板生成出//双斜杠路径,导致资源 404。
如果后台已经进不去(登录后跳回登录页或白屏),直接改数据库。用 phpMyAdmin 或 Navicat 连上库,找到配置表(赞片CMS基于苹果CMS内核,表前缀常见为 mac_ 或 zp_,以你安装时设的为准),执行:
UPDATE mac_config SET value = REPLACE(value, 'http://你的域名', 'https://你的域名');
执行前先导出备份这张表。
第四步:清理混合内容(图片、播放器不显示就是它)
这一步把页面里残留的 http 资源请求全部换成 https,做完浏览器小锁不再显示警告。
在数据库里对内容表做一次全局替换(同样先备份):
UPDATE mac_vod SET vod_pic = REPLACE(vod_pic, 'http://', 'https://');
再检查模板目录里有没有写死的 http 地址,常见于播放器 JS、统计代码、CDN 静态资源引用。搜索模板目录:
grep -rn "http://" /www/wwwroot/你的站点/template/ | grep -v "https://"
把外部资源(播放器、图床、统计)的 http:// 改成 // 开头的协议相对写法,比如 //cdn.example.com/player.js,这样 http 和 https 环境都能用。
注意:采集来的资源地址如果是对方站点的 http 链接,你改成 https 反而可能 404。这类资源建议保留原样,或者在播放器解析接口里做转发。
第五步:清缓存后再验证
这一步确保你看到的是新配置生效后的结果,而不是旧缓存。
按顺序清:赞片CMS后台 → 系统 → 缓存管理 → 清除全部缓存;服务器上删除站点的 runtime 目录下的缓存文件;如果套了 CDN,在 CDN 后台执行「清除全部缓存」。
然后无痕窗口打开首页、列表页、播放页各一个,看 Console 是否还有红色报错。
小结
- 先看错误码再动手,重定向循环、证书错误、混合内容三类问题的解法完全不同。
- 重定向循环优先查 CDN 的 SSL 模式和 Nginx 的
X-Forwarded-Proto、fastcgi_param HTTPS on。 - 后台「网站设置」里的域名必须写成
https://域名,结尾不加斜杠。 - 图片、播放器等混合内容靠数据库
REPLACE加模板文件搜索替换来清。 - 每次改完数据库或配置都要清缓存,并用无痕窗口验证。
原文链接:https://www.gj0.com/thread-1212.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。