【问题标题】:Page loaded over HTTPS, but requested an insecure font — but all links are HTTPS页面通过 HTTPS 加载,但请求的字体不安全 - 但所有链接都是 HTTPS
【发布时间】:2019-01-13 05:13:29
【问题描述】:

我有一个 WP 网站,可以从同一页面上的目录加载一些自定义字体。 到目前为止,它没有任何问题。我怀疑可能是某个插件对 .htaccess 做了一些事情。

Mixed Content: The page at 'https://www.mypage.net/' was loaded over HTTPS, but requested an insecure font 'http://www.mypage.net/'. This request has been blocked; the content must be served over HTTPS.

通常,您可以通过在 HTTP 末尾添加 s 轻松解决此问题,但所有链接都是 HTTPS — 但它说不是。我检查了字体样式表中的<link>。然后我检查了样式表,所有链接都是 HTTPS 和绝对路径。

页面强制 HTTPS 重定向,并且在 WP 的设置中,页面被定义为具有 HTTPS 的 URL。

【问题讨论】:

  • 通过这个工具运行你的网站,结果如何? whynopadlock.com
  • 自己打开字体链接,看看它是否会将您重定向到 http URL

标签: html wordpress http https


【解决方案1】:

您可以尝试添加一个名为 Really simple ssl 的插件来检查是否可以解决您的问题

【讨论】:

  • 没有帮助,但我发现一个问题变成了另一个错误。在我的 .htaccess 中,我有一行 RewriteRule 是在非 https 中定义的。 RewriteRule .*\.(ttf|otf|woff|woff2|eot)$ http://www.mypage.net/ [NC]。改为https。这给了我一个不同的错误:OTS parsing error: invalid version tag 我通过在@font-face src URL 的 URL 末尾添加 ?v=1 解决了这个问题。但是 .tff fversion 仍然会导致问题。将?v=1 添加到它会得到 404 - 现在它甚至出于某种原因给出了 404 而没有最后的版本。
【解决方案2】:

更新:经过大量测试和修补,终于解决了。

首先;我的字体文件夹有一个.htaccess 规则,以防止从网站本身以外的任何其他来源下载(需要许可证)。其中一个RewriteRule 使用的是 HTTP 而不是 HTTPS:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mypage\.net/ [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(ttf|otf|woff|woff2|eot) [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule .*\.(ttf|otf|woff|woff2|eot)$ http://www.mypage.net/ [NC]
                                          ^^^^^

我将其修复为 HTTPS,然后它更改为另一个错误:

Failed to decode downloaded font: https://mypage.net/fonts/font.woff OTS parsing error: invalid version tag

为了解决这个问题,我必须确保我的字体有 deep font support,它有,然后我在某处读到它可以通过向链接添加版本 (?v=x) 来解决,例如:

src: url('https://mypage.net/fonts/font.woff?v=1') format('woff');

这适用于 .woff、.woff2 和 .eot,但由于某种原因不适用于 .ttf。在 .ttf 上添加版本扩展名会给我 404。实际上我也曾经遇到过它在没有扩展名的情况下给了我 404。我伸出手,将包含 .ttf 的 src: url('…'); 从底部移到顶部,以某种方式解决了这两个错误。

此时它没有给我错误,但现在它根本没有加载字体。它变成了后备。随机搜索后,我发现通过插件上传的自定义字体(ProPhoto6 - 他们只允许上传 X 数量的自定义字体,这是愚蠢的)具有不同的读/写权限。我将权限更改为我使用的所有字体都具有的值(ProPhoto 上传并正在使用的字体); 0666(有 0644)。这终于使它加载没有错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 2023-04-10
    • 2019-10-10
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多