在阅读我的问题之前,请注意:我知道在客户端浏览器中可以欺骗或禁用HTTP_REFERER。我不关心我的用例,我正在测试的浏览器肯定会传递引用信息。
我的问题是:
我创建了一个名为page1.php的文件:
<?php
header("Location: page2.php");
我创建了一个名为page2.php的第二个文件:
<?php
echo "Referred by \"" . $_SERVER['HTTP_REFERER'] . "\"";
然后从我的客户端浏览器中调用:
我希望page2.php的结果输出为:
由&#34; http://test-me.co/page1.php&#34;
引用
但是它显示的没有引用信息如下:
由&#34;&#34;
引用
任何人都可以告诉我为什么引用者是空的?
非常感谢!
答案 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
开始此链,则没有引用。