整站上了 HTTPS,文章里嵌入的视频还是 http 地址,播放器区域一片黑,控制台报 Mixed Content: The media at 'http://...' was loaded over HTTPS。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,浏览器会拦截 HTTPS 页面里的 http 媒体请求,video 不会自动升级,只在控制台留一条错误。数据库里存的是老地址,迁移时只改了页面链接没改正文。

「视频混合内容」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://cdn.example.com', 'https://cdn.example.com') WHERE post_content LIKE '%http://cdn.example.com%';

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,把正文里的 http 媒体地址批量换成 https;先确认 CDN 支持 https 再改 避免换完 404;加 upgrade-insecure-requests 只能兜底 不能替代替换。

最后用这个标准收尾,文章页视频正常播放,控制台不再出现 Mixed Content 提示。

作者 9823189