位置:header好像没有设置HTTP_REFERER

Location: header does not seem to set HTTP_REFERER

在阅读我的问题之前,请注意:我知道 HTTP_REFERER 可以在客户端浏览器中被欺骗或禁用。我不关心我的用例,我正在测试的浏览器肯定会传递引用信息。

我的问题是:

我创建了一个名为 page1.php 的文件:

<?php
header("Location: page2.php");

我创建了第二个文件 page2.php:

<?php
echo "Referred by \"" . $_SERVER['HTTP_REFERER'] . "\"";

然后从我的客户端浏览器调用:

http://test-me.co/page1.php

并且我期望 page2.php 的结果输出为:

Referred by "http://test-me.co/page1.php"

但它显示没有参考信息,如下所示:

Referred by ""

谁能告诉我为什么 referer 是空的?

非常感谢!

referer 包含用户访问的最后一个实际页面。如果您在地址栏中输入 URL example.com/a.html,它会立即重定向到 /b.html,那么您根本就没有真正访问过 a.html;在那之前没有你 "came from".

的页面

要在重定向后看到任何引荐来源网址,必须从某处链接,即

a.html  --link-->  b.html  --redirect-->  c.html

然后在 c.html 中,您会看到 a.html 作为引荐来源网址。如果您在 b.html 开始此链,则没有 referer。