根据 W3C RFC 2616 里的规则( https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3 ),在 https 的网站上点击 http 链接时, Referer 并不会发送到 http 目的地。
Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.
如果希望在这种情况下保持发送 Referer ,那么可以在页面中加入下面的这个 header :
<meta name="Referrer" content="origin" />
目前的主流浏览器都已经支持这个头部,除了 IE 系列:
http://caniuse.com/#feat=referrer-policy
下面是关于这个标签的具体解释:
这里需要注意的一个坑是,如果你在 HTML 中加入的是下面的这个 Referrer Policy,那么在发送 Referer 头部时,只会发送源网站的域名:
<meta name="Referrer" content="origin" />
如果你希望发送完整的 URL,那么你需要加入的是:
<meta name="Referrer" content="unsafe-url" />
关于这里可能的各种设置:
https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url