19

我在我正在处理的 Wordpress 网站的 chrome 控制台中收到以下错误。

未能设置推荐人策略:值“ http://example.com/comic/ ”不是“总是”、“默认”、“从不”、“无推荐人”、“无推荐人时降级”之一'、'origin'、'origin-when-crossorigin' 或 'unsafe-url'。推荐人政策保持不变。

<head>它引用HTML 文档中的这一行...

<meta name="Referrer" content="http://example.com/comic/" />

我正在浏览页面http,不是https

是什么导致了这个问题,我该如何解决?

4

6 回答 6

29

进入您的 .htaccess 文件并更改以下内容:

Header set Referrer-Policy ""

Header set Referrer-Policy "origin"

那应该可以解决问题。

原因很可能是因为您对允许 w3tc 进行所需更改的 .htaccess 文件没有正确的权限。

于 2018-07-21T18:52:43.173 回答
10

对于安装了 W3 Total Cache 的 Wordpress 网站,Chrome 检查控制台向我显示了相同的错误。“未能设置推荐人策略:值''不是'no-referrer','no-referrer-when-downgrade','origin','origin-when-cross-origin'”

我尝试按照上面的答案更新 .htaccess 文件。这修复了 Chrome 检查控制台错误,但它在片刻后返回。

检查 W3 Total Cache Performance ->Browser Cache-> Referrer Policy-> Directive 的仪表板,此条目显示为空白。

从下拉列表中选择“origin”会导致 .htaccess 被更新为相同的值“origin” W3 Total Cache Pluginn 控制台

于 2018-10-31T16:38:51.800 回答
10

下面是从规范中得到的定义:

在获取子资源、预取或执行导航时,引荐来源网址策略会修改用于填充引荐来源网址头的算法。每个环境设置对象都有一个用于获取引用策略的算法,默认情况下,该策略用于所有以该环境设置对象作为其请求客户端的请求。

因此,推荐策略处理浏览器将哪些信息(与 url 相关)发送到服务器以检索外部资源。

content规范中列出的属性的选项是:

  • no-referrer它指定不与从特定请求客户端向任何来源发出的请求一起发送引荐来源网址信息。标题将被完全省略。

  • no-referrer-when-downgrade不会将 Referrer 标头发送到非先验身份验证的 url(如果 https url 链接到 http url,则不会发送标头)

  • same-origin策略指定在从特定请求客户端发出同源请求时,将剥离以用作引荐来源网址的完整 URL 作为引荐来源网址信息发送。而跨域请求将不包含引荐来源信息。

  • origin发送方案、主机和端口(基本上是子域)作为引荐来源网址,即https://moz.com/example.html将简单地发送https://moz.com

  • origin-when-cross-origin将中描述的格式发送origin到跨域,而将完整的剥离 URL 发送到同源请求。

  • unsafe-url策略指定一个完整的 URL,被剥离用作引用者,与跨域请求和来自特定请求客户端的同源请求一起发送。
    这是不安全的,因为它会将来源和路径从受 TLS 保护的资源泄漏到不安全的来源。

  • 空字符串 "" 对应于无引荐来源策略,导致回退到其他地方定义的引荐来源策略,或者在没有此类更高级别策略可用的情况下,默认为no-referrer-when-downgrade.

  • always表现得像unsafe-url.

于 2016-10-09T22:20:34.853 回答
8

您可以在 .htaccess 文件中手动查找和更改如下:

<IfModule mod_headers.c>
    Header set Referrer-Policy ""
</IfModule>

<IfModule mod_headers.c>
    Header set Referrer-Policy "origin"
</IfModule>
于 2018-09-04T04:36:56.657 回答
1

“Referer”作为标题的拼写没有双 R。也许使用双 R,它匹配的标题与您的意思不同。

于 2017-08-12T11:56:39.733 回答
0

在我的情况下,www.API URL 中缺少,而www.表单页面上存在。www.如果您的页面也有,请确保您的 API URL 也有。

于 2020-09-16T08:26:48.953 回答