Am尝试使用cloudflare工作者通过301重定向将Ref(f)erer从HTTPS域A传递到HTTPS域B。
1)用户在浏览器地址字段中输入https://domainA.com,这样的请求标头将发送到服务器:
然后由此类Cloudflare工作者处理此请求:
<...>
return new Response("Will Redirect", {
status: 302,
statusText: 'Found',
headers: {
Location: "https://domainB.com",
"Referrer-Policy": "unsafe-url"
}
})
<...>
此代码生成这样的HTTP响应:
“到目前为止一切都很好”-引荐来源网址标头已设置并显示,但在请求/响应标头之前,Chrome会在同一请求上显示“常规”信息:
据我了解,^是请求/响应组合的快速摘要。此“引荐来源网址政策”在哪里:no-referrer-when-downgrade行到达那里?是Chrome的默认Request参数,还是Chrome默认在响应时添加它?还是这些是Cloudflare的默认设置?我想这是我无法通过推荐人的潜在原因之一。
然后302重定向加载domainB,此请求由第二个工作程序处理:
<...>
let refr = request.headers.get('Referer')
let resp = new Response(`Testing referer: ${refr}`)
resp.headers.set('Referrer-Policy', 'unsafe-url')
return resp
<...>
第二个请求/响应如下:
但是domainB的响应如下:
尽管我期望看到Testinf推荐人:domainA.com。我将如何实现?
谢谢!
答案 0 :(得分:0)
好吧,事实证明您不能确定是否将传递Referer,因为它完全取决于访客浏览器。建议的方法是在301重定向位置中使用domainB.com?domainid=xyz,并确保第二个域知道xyz代表domainA。