You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP避免转发Referrer值?

问题场景与解决方案

场景还原

  • Example.com/redirect.php 代码:header("Location: https://stackoverflow.com");
  • Test.com 包含链接:<a href="https://www.example.com/redirect.php">Test Click</a>

跳转流程:

Test.com(点击链接)→ Example.com/redirect.php → https://stackoverflow.com

当前问题:Stackoverflow.com获取到的Referrer是test.com,而非上一级的example.com,需要让目标站仅获取跳转前的example.com作为Referrer。

解决方案

修改Example.com/redirect.php的PHP代码,添加Referrer-Policy响应头控制Referrer传递逻辑:

// 设置Referrer仅传递当前域名源信息
header("Referrer-Policy: origin");
// 执行301跳转
header("Location: https://stackoverflow.com", true, 301);

策略说明

  • origin:浏览器会将当前页面的「协议+域名+端口」(即example.com)作为Referrer传递给目标站,丢弃之前的test.com来源信息。
  • 若需更严格的安全控制,可选择strict-origin策略(仅当跳转前后协议安全级别一致时,才传递源信息),但origin已满足核心需求。

原理

浏览器默认在3xx跳转时会保留最初的Referrer(即test.com),通过在跳转页面设置Referrer-Policy,可以强制浏览器在跳转到下一站时,仅使用当前页面的源信息作为Referrer。

内容的提问来源于stack exchange,提问作者Mehul Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:04:59