Automatic HTTPS Rewrites 通过将网站上可通过 HTTPS 提供服务的资源或链接的 URL 从 http 重写为 https,防止最终用户看到“混合内容”错误。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Yes | Yes | Yes | Yes |
如果您的网站包含也可通过 HTTPS 安全访问的 HTTP URL 的链接或引用,Automatic HTTPS Rewrites 可以提供帮助。如果您通过 HTTPS 连接到网站且锁图标不存在,或带有黄色警告三角,您的网站可能包含对 HTTP 资源的引用(“混合内容”)。
混合内容通常由网站所有者无法控制的因素引起,例如嵌入的第三方内容或复杂的内容管理系统。通过将 URL 从 “http” 重写为 “https”,Automatic HTTPS Rewrites 简化了使整个网站可通过 HTTPS 访问的任务,有助于消除混合内容错误,并确保网站加载的所有数据都受到保护,免受窃听和篡改。
要在仪表板中启用 Automatic HTTPS Rewrites(自动 HTTPS 重写):
-
在 Cloudflare 仪表板中,前往 Edge Certificates(边缘证书) 页面。
Go to Edge Certificates ↗ -
对于 Automatic HTTPS Rewrites(自动 HTTPS 重写),将开关切换到 On(开启)。
要通过 API 启用或禁用 Automatic HTTPS Rewrites(自动 HTTPS 重写),请发送 PATCH 请求,在 URI 路径中将设置名称设为 automatic_https_rewrites,并将 value 参数设置为所需设置("on" 或 "off")。
在应用重写之前,Cloudflare 会检查 HTTP 资源以确保它们可通过 HTTPS 访问。如果它们无法通过 HTTPS 访问,Cloudflare 无法重写 URL。
某些资源在网站于浏览器中加载时由 JavaScript 或 CSS 通过 HTTP 加载。在这些情况下,您将看到混合内容警告。为确定哪些 URL 不支持 HTTPS,Cloudflare 使用来自 EFF 的 HTTPS Everywhere ↗ 和 Chrome 的 HSTS 预加载列表 ↗ 的数据。如果您的 zone 不在这些列表中,则只会重写活动内容。被动内容(例如图像)不会被重写,仍会导致混合内容错误。
如果第三方域名支持 HTTPS 但未自动重写,您可以手动将这些链接更改为相对链接或 HTTPS 链接。或者,您可以要求第三方域名所有者提交其网站以纳入 HTTPS Everywhere 规则集,该规则集接受 GitHub 上的拉取请求 ↗。有关如何修复混合内容错误的更多信息,请参阅排除混合内容错误。