我在这里找了一段时间,找不到我的具体问题的答案。
在我网站上的100个地方,我通过标题位置重定向重定向到错误页面。
header("Location: /error.php");
我想要做的是在error.php页面上捕获并记录http_referrer,但由于某种原因它没有设置。我已经看到为什么它没有设置元刷新,但位置标题是302,所以应该设置正确的解释?有什么想法吗?
请注意 - 我知道http_referrer不可靠,我知道我可以单独传递信息。在我的场景中哪个都不重要(除非我想要更改调用重定向的所有位置)。
答案 0 :(得分:3)
嗯,HTTP_REFERER是由浏览器设置的,如果浏览器选择不在302重定向上设置它,这不应该,那么你就不会得到它。 302是临时重定向,这意味着前一页暂时不可用。为什么浏览器想要发送现在不存在的页面的信息?
实现这一目标的好方法:
Referer
行,但有些浏览器会忽略此行,并且无论如何都不会发送它。真的没有办法解决这个问题而不修改重定向的每个地方的代码,你也想记录信息。
答案 1 :(得分:2)
它实际上是HTTP_REFERER
(中间有一个'R') - 一个卡住的拼写错误!
echo $_SERVER['HTTP_REFERER'];
答案 2 :(得分:-1)
某些浏览器不支持HTTP_REFERER
。您可以使用isset()
功能,这一点非常重要,您必须使用HTTP_REFERER
而不是HTTP_REFERRER
!