HTTPS锁没锁住?3招快速搞定WordPress mixed content报错
时间:2026年05月25日 02:24:40
来源:易频IT社区
昨天帮朋友弄了个小网站,他刚从HTTP升级到HTTPS,结果浏览器地址栏那个锁变灰还带个感叹号。点进去一看,mixed content(混合内容)报错。他急得直挠头,说花了大几百装SSL证书,白折腾半天。
其实这种情况超常见,不管你是刚装证书的新手,还是偶尔换图换插件的老鸟,都可能踩坑。说白了就是你的HTTPS网站里,还藏着HTTP的“旧东西”——图片、CSS、JS,甚至第三方工具的链接。浏览器为了安全,就把锁降级了。
今天我就把10年踩坑踩出来的3招,全给你拆成大白话,每一步都能直接照着点。看完别说感叹号,绿锁分分钟亮起来。
1. 先搞清楚:哪些HTTP资源在搞鬼?
这个是第一步,也是最容易的。你得先找到“内鬼”是谁,才能精准清除。别瞎猜,用浏览器自带的工具就行,不用装任何插件。
方法一:用Chrome/Firefox的开发者工具查
不管你用啥浏览器,核心步骤都差不多,我拿大家最常用的Chrome说:
- 打开你的HTTPS网站首页,或者报错最明显的页面。
- 按键盘上的F12键,或者右键点页面空白处,选“检查”。
- 弹出的面板右上角,找一个叫「Console」(控制台)的标签,点进去。
- 里面会跳出一堆红色/黄色的字,找带「Mixed Content」开头的就行。
- 每一条后面都跟着具体的HTTP链接,比如http://你的域名/wp-content/uploads/2024/05/头像.jpg,这个就是内鬼。
避坑提醒:别只看首页!很多人首页改完就不管了,结果内页、产品页还藏着旧链接,锁照样不亮。每个常用页面都点一遍查一遍。
方法二:用在线工具批量扫一遍
如果你的网站页面特别多,几百上千条,手动一个个查太费时间。推荐用免费的「Why No Padlock?」在线工具:
- 浏览器搜一下这个名字,点第一个官网就行。
- 在输入框里填你的HTTPS完整域名,注意别漏https://。
- 点「Check」按钮,等个几十秒(页面多的话可能1-2分钟)。
- 扫完会给你一个详细的报告,所有HTTP资源的位置、链接都列得清清楚楚。
避坑提醒:这种免费工具扫的页面数有限,一般是首页+内页前几个。如果是电商站,核心产品页和支付页最好单独再用F12查一遍,别留安全隐患。
2. 找到内鬼后,快速批量替换HTTP链接
找到问题就好办了,接下来就是把所有HTTP开头的链接,换成HTTPS的。这里分两种情况:一种是你网站自己的资源,另一种是第三方工具的资源,得分别处理。
2.1 先处理自己网站的资源(最常见的内鬼)
自己网站的图片、CSS、JS,一般都存放在「wp-content」文件夹里,链接开头都是http://你的域名/开头的。这时候别一个个去后台改,太麻烦,用插件或者数据库批量替换最快。
方案A:用插件批量替换(适合新手)
新手别碰数据库,手滑删错东西哭都来不及,用免费插件「Better Search Replace」就行:
- 先去WordPress后台,点「插件」→「安装插件」,搜这个名字。
- 安装后一定要先点「启用」,再去后台左侧菜单找「工具」→「Better Search Replace」。
- 打开后有三个输入框:
- 第一个框「Search for」:填你的旧HTTP完整域名,比如http://abc.com(注意别带www,如果旧站带就带,不带就不带,一定要跟原来完全一致)。
- 第二个框「Replace with」:填你的新HTTPS完整域名,比如https://abc.com。
- 第三个框「Select tables」:全选所有表!别漏,不然换不全。
- 然后先别着急点「Run Search/Replace」,先点「Dry Run」(试运行)。
- 试运行会告诉你大概有多少条记录要替换,没问题的话,再勾选「Run Search/Replace」下面的确认框,正式替换。
避坑提醒:替换之前一定要先备份数据库!!!可以用WordPress自带的「工具」→「导出」,或者用免费插件「UpdraftPlus」,全选数据库一键备份。备份好存到自己电脑里,别存服务器上。
方案B:手动改几个核心配置(适合插件搞不定的情况)
有时候插件换完还有漏网之鱼,可能是你网站的核心配置文件没改。比如WordPress后台的「设置」→「常规」里的两个地址:
- 打开后台「设置」→「常规」。
- 找到「WordPress地址(URL)」和「站点地址(URL)」,把这两个的http改成https。
- 拉到底点「保存更改」,改完可能会让你重新登录,正常现象。
还有很多主题/插件有自己的设置面板,比如主题的自定义页、联系表单插件的设置、相册插件的设置,里面可能填了旧的HTTP链接。你可以扫一遍这些常用的设置面板,找到就改。
2.2 再处理第三方工具的资源
第三方工具比如百度统计、腾讯视频、支付宝收款码的链接,有时候也会是HTTP开头的。这时候别自己瞎改,分情况处理:
- 如果第三方工具支持HTTPS:直接去第三方官网,复制最新的HTTPS代码/链接,替换掉你网站里的旧的就行。比如百度统计,现在默认都是HTTPS的,去统计后台重新复制一段代码,贴到你的WordPress主题「footer.php」或者「header.php」里。
- 如果第三方工具不支持HTTPS:别勉强用了!不安全不说,绿锁永远亮不起来。赶紧换一个支持HTTPS的替代品。比如有些老的免费图床,现在都不支持HTTPS了,你可以把图片搬到自己的服务器上,或者换免费又支持HTTPS的图床,比如SM.MS。
3. 最后再加固一下:强制所有访问走HTTPS
前面两步改完,绿锁应该已经亮了。但为了防止以后不小心又加了HTTP的资源,或者有人直接输入http://你的域名访问,最好再加一道保险——强制所有访问自动跳转到HTTPS。
3.1 用插件强制跳转(最稳,适合99%的人)
还是推荐免费插件,「Really Simple SSL」,这个插件专门干这个的,一键搞定:
- 去WordPress后台,点「插件」→「安装插件」,搜这个名字。
- 安装后直接点「启用」,然后它会弹出一个窗口,告诉你要不要强制HTTPS,点「Go ahead, activate SSL!」就行。
- 就这么简单,连设置都不用多改,插件会自动帮你处理好301跳转、HSTS预加载、混合内容修复等一堆事。
避坑提醒:启用这个插件之前,一定要确保你已经完成了前面两步!不然启用后可能会出现网站打不开、样式乱掉的情况。还有,这个插件启用后别随便删,删了强制跳转就失效了。
3.2 手动改.htaccess文件(适合懂点服务器的人)
如果你不想装太多插件,也可以手动改.htaccess文件,但前提是你的服务器是Apache的(大部分国内虚拟主机和国外VPS都是):
- 先登录你的服务器面板,或者用FTP工具(比如FileZilla)连接到服务器。
- 找到网站根目录下的.htaccess文件,这个文件是隐藏的,记得在服务器面板/FTP工具里开启「显示隐藏文件」的功能。
- 右键点.htaccess文件,选「编辑」,在文件最上面(不要碰原有的WordPress代码)加下面这段代码:
```
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```
- 拉到底点「保存」,然后刷新你的网站,输入http://你的域名,看看会不会自动跳转到https://。
避坑提醒:修改.htaccess之前一定要先备份这个文件!备份好存到自己电脑里,改坏了直接覆盖回去就行。还有,如果你用的是Nginx服务器,.htaccess没用,得去Nginx的配置文件里加跳转规则,这个新手别碰,还是用插件吧。
今天这3招,我帮不下100个朋友解决过混合内容的问题,百试百灵。其实修复mixed content报错,核心就是「找到内鬼→替换链接→强制跳转」,别想太复杂。
现在就赶紧打开你的网站,先按F12查一下有没有内鬼。查完用Better Search Replace批量替换自己的资源,再扫一遍第三方工具。最后装上Really Simple SSL加固一下。绿锁亮起来的那一刻,你会发现网站访问速度没变慢,排名反而可能还会涨一点(百度谷歌都更喜欢HTTPS网站)。