我有一个PHP脚本,它通过一些代码重定向用户,比如:
header ('Location: http://someurl/somepage.php');
然后在somepage.php中,我尝试访问$_SERVER['HTTP_REFERER']以确定页面请求来自何处。我发现在使用header location方法调用页面时,$_SERVER['HTTP_REFERER']是空的。
是否有其他方法可以用于重定向用户,以便我仍然可以在目标页面中使用$_SERVER['HTTP_REFERER']。
发布于 2009-03-27 04:54:57
您可以尝试一件事:不发送HTML头,而是发回一个带有标记的Location页面
<meta http-equiv="refresh" content="0;url=http://someurl/somepage.php">在<head>部分中。但我不确定这是否能解决你的问题。这真的取决于浏览器的行为。$_SERVER['HTTP_REFERER']的值来自浏览器可以自由发送或不发送的Referer请求头。
您还可以做的其他事情是
header("Location: http://someurl/somepage.php?referer=http%3A%2F%2Fthisurl%2Fthispage.php");也就是说,将referer URL作为查询字符串参数发送,然后您就可以作为$_GET['referer']访问它。这可能比依靠浏览器发送referer报头更可靠。
发布于 2009-03-27 04:59:56
HTTP Referer:头是由用户代理设置的,而不是由服务器设置的。我不确定你能做些什么来确保你得到一个Referer头。
https://stackoverflow.com/questions/688589
复制相似问题