本文目录导读:

在 PHP 中设置 Referrer-Policy 主要有以下几种方法:
使用 header() 函数(最常用)
全局设置
<?php
// 在页面顶部设置
header('Referrer-Policy: strict-origin-when-cross-origin');
?>
常见策略值
// 不发送 Referrer 信息
header('Referrer-Policy: no-referrer');
// 只发送来源网站的协议、主机和端口
header('Referrer-Policy: origin');
// 同源发送完整URL,跨域只发送来源
header('Referrer-Policy: strict-origin-when-cross-origin');
// 只发送同源的 Referrer
header('Referrer-Policy: same-origin');
// 强制发送完整 Referrer
header('Referrer-Policy: unsafe-url');
在 HTML 中设置(替代方案)
<?php // 如果无法修改 headers,可以在 HTML 中设置 echo '<meta name="referrer" content="strict-origin-when-cross-origin">'; ?>
通过配置 Apache/Nginx 设置
Apache (.htaccess)
<IfModule mod_headers.c>
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
Nginx
add_header Referrer-Policy "strict-origin-when-cross-origin";
完整示例:根据环境动态设置
<?php
// 允许所有来源的请求
header('Access-Control-Allow-Origin: *');
// 根据环境设置不同的 Referrer-Policy
$environment = getenv('APPLICATION_ENV'); // 获取环境变量
switch ($environment) {
case 'development':
header('Referrer-Policy: no-referrer-when-downgrade');
break;
case 'production':
header('Referrer-Policy: strict-origin-when-cross-origin');
break;
default:
header('Referrer-Policy: strict-origin-when-cross-origin');
}
// 其他必需的 headers
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: SAMEORIGIN');
?>
验证设置是否生效
<?php
header('Referrer-Policy: strict-origin-when-cross-origin');
// 检查 headers 是否已发送
if (headers_sent()) {
echo 'Headers 已经发送,无法更改';
} else {
// 可以安全设置 header
header('Referrer-Policy: strict-origin-when-cross-origin');
}
?>
注意事项
-
必须在使用任何输出前调用 header()
确保在 HTML、echo 等输出之前设置
-
PHP 5.5+ 支持这种设置方法
-
浏览器兼容性
主流浏览器都支持,但旧版本可能有差异
-
优先级
- HTTP Header >
<meta>标签 > 浏览器默认设置
- HTTP Header >
最推荐的做法是在 PHP 文件顶部使用 header() 函数设置,因为它能够全局控制,易于管理和维护。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播