整站切到 HTTPS 后,控制台不断提示混合内容被拦截,部分样式和图片不显示。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
SELECT ID, post_content FROM wp_posts WHERE post_content LIKE '%http://example.com%'; UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');
页面内仍有写死的 http 地址,浏览器按安全策略阻止加载。这一点先确认清楚,后面就不用反复试。
「混合内容」这类改动最怕改一半,回滚脚本先准备好,再动生产。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
同一份配置存在多处的,先确认改的是被加载的那一份。
具体做法是,在控制台按类型筛出被拦资源;批量替换为相对协议或 https;数据库里的旧地址一并更新。
改完照着核一遍,控制台无混合内容告警,小锁正常显示。