为何网站出现Mixed Content错误?旧域名引用及路径问题排查
混合内容(Mixed Content)错误分析与修复方案
错误含义
你遇到的是混合内容拦截错误:当HTTPS加密页面(https://examplesite.de/)尝试加载未加密的HTTP资源时,浏览器出于安全策略会直接拦截该请求,避免敏感页面被不安全资源劫持或篡改。你的情况里,错误提示的HTTP资源其实是旧域名的404页面,并非字体本身——这是路径错误触发旧配置导致的连锁问题。
问题根源
- IFrame字体路径错误:IFrame页面里的
@font-face使用了相对路径resources/fonts/...,而IFrame本身位于子目录(比如resources/homescreen/homeimg03/),相对路径会叠加成resources/homescreen/homeimg03/resources/fonts/...,服务器找不到该路径下的字体文件,触发404。 - 服务器旧配置残留:虽然代码里已移除旧域名
formerexamplesite.de,但服务器可能还保留着旧的404跳转规则——当出现404请求时,会跳转到旧域名的HTTP 404页面,这就导致HTTPS页面请求了HTTP资源,触发混合内容拦截。
修复步骤
- 修正字体路径为根相对路径:把
@font-face中的url('resources/fonts/...')改为url('/resources/fonts/...')(开头加/),这样无论IFrame在哪个子目录,都会从网站根目录定位字体文件,避免路径嵌套错误。修改后的代码如下:/* montserrat-600 - latin */ @font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: local(''), url('/resources/fonts/montserrat-v25-latin-600.woff2') format('woff2'), url('/resources/fonts/montserrat-v25-latin-600.woff') format('woff'); } - 清理服务器404跳转规则:登录服务器管理后台,找到404页面配置,彻底移除指向旧域名
formerexamplesite.de的跳转,改为指向当前域名的HTTPS 404页面,或直接返回404状态码不跳转。 - 清除缓存:清空服务器缓存、CDN缓存(如果使用),同时在浏览器中强制刷新页面(
Ctrl+F5),确保旧配置和错误路径不再生效。 - 验证修复结果:用浏览器开发者工具的「网络」面板检查所有IFrame页面的字体请求,确认路径正确(无嵌套),且没有旧域名的HTTP请求;再用PageSpeed Insights重新检测,确认混合内容错误消除。
内容的提问来源于stack exchange,提问作者FrozenYoghurt
相关产品推荐
相关产品推荐

