位置: header 似乎没有设置 HTTP_REFERER

Pan*_*cho 1 php http-referer header http

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

我的问题是这样的:

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

<?php
header("Location: page2.php");
Run Code Online (Sandbox Code Playgroud)

我创建第二个文件,名为 page2.php:

<?php
echo "Referred by \"" . $_SERVER['HTTP_REFERER'] . "\"";
Run Code Online (Sandbox Code Playgroud)

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

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

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

由“ http://test-me.co/page1.php ”引用

但它显示没有引用信息,如下所示:

由......推荐 ””

谁能告诉我为什么引用者为空?

非常感谢!

dec*_*eze 5

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

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

a.html  --link-->  b.html  --redirect-->  c.html
Run Code Online (Sandbox Code Playgroud)

然后c.html你会看到a.html作为推荐人。如果您从 开始这条链b.html,则没有引用者。