为什么 Chrome 会将页面内的链接从 http:// 重写为 https:// 方案?

为什么 Chrome 会将页面内的链接从 http:// 重写为 https:// 方案?

我完全被这个问题难住了:

当访问一个虚拟主机网站时,该网站不支持 SSL,并且其数据库中没有引用任何 https:// 方案,或其主题、配置等中的任何文件(这是一个 WordPress 网站),Chrome 会重写页面内的链接以使用 https:// 方案。

使用 Firefox 或 IE 访问网站时不会出现此问题。主机操作系统是 Windows 7。

我尝试了以下操作,但没有成功:

  • 删除用户的本地 Chrome 数据,以防出现缓存问题
  • 安装了最新的 Chrome
  • 禁用所有插件
  • 禁用防病毒程序
  • 清除了 Chrome HSTS 数据库中位于 chrome://net-internals 的主机名 - 也在此处讨论Chrome:如何停止从 http:// 重定向到 https://

注意:Web 服务器仅监听端口 443,并使用主机 Web 服务器主机名的 SSL 证书。

为了更加清晰,例如,Web 服务器使用原始 HTML 进行响应:

<html>
...
<a href="http://hostname">link</a>
...
</html>

Chrome 正在重写页面内的链接,以便将其呈现为:

<html>
...
<a href="https://hostname">link</a>
...
</html>

如果您能提供导致此情况的原因的进一步建议,我们将不胜感激。

答案1

我客户的儿子打电话来,他查看了已安装的 WooCommerce 并发现了原因。WooCommerce 官方版本:

http://develop.woothemes.com/woocommerce/2015/07/woocommerce-2-3-13-security-and-maintenance-release/

2.3.12 版中有一个虽小但很重要的修复与 SSL 检测有关。WooCommerce 在很大程度上依赖 WordPress 函数 is_ssl() 来检测页面是否通过 SSL 提供服务。WooCommerce 有一个小函数,可使该函数与某些特殊情况的托管环境兼容。然而,这导致某些 Google Chrome 安装错误地认为 URL 是 SSL。

相关内容