位置:标头似乎没有设置HTTP_REFERER

时间:2017-09-05 11:07:24

标签: php http header 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的结果输出为:

  

由&#34; http://test-me.co/page1.php&#34;

引用

但是它显示的没有引用信息如下:

  

由&#34;&#34;

引用

任何人都可以告诉我为什么引用者是空的?

非常感谢!

1 个答案:

答案 0 :(得分:3)

referer包含用户访问的最后一个实际页面。如果您在地址栏中输入了网址@model DemoApp.Models.Rootobject @{ Layout = null; } <div> @foreach (var webinar in Model.Webinars) { <h3>@webinar.Title</h3> <ul> <li>@webinar.Categories[0].TimeZone</li> </ul> } </div> ,该地址栏会立即重定向到example.com/a.html,那么您根本就没有真正访问过/b.html;在此之前,没有你“来自”的页面。

要在重定向后查看任何引用,重定向页面必须从某处链接,即

a.html

然后在a.html --link--> b.html --redirect--> c.html 中,您会看到c.html作为引用者。如果您在a.html开始此链,则没有引用。