PHP重定向而不修改标题

dav*_*ywc 2 php redirect location header

我有一个PHP脚本,通过一些代码重定向用户,如:

header ('Location: http://someurl/somepage.php');

然后在somepage.php中我试图访问$_SERVER['HTTP_REFERER']以确定页面请求的来源.$_SERVER['HTTP_REFERER']当使用标头定位方法调用页面时,我发现它是空的.

是否有一种替代方法可以用来重定向用户,以便我仍然可以$_SERVER['HTTP_REFERER']在目标页面中使用.

Dav*_*d Z 6

您可以尝试的一件事是:Location发送回带有标记的HTML页面,而不是发送标题

<meta http-equiv="refresh" content="0;url=http://someurl/somepage.php">
Run Code Online (Sandbox Code Playgroud)

在该<head>部分.我不确定它是否能解决你的问题,但是......这实际上取决于浏览器的行为方式.该值$_SERVER['HTTP_REFERER']来自Referer浏览器可自由发送或不发送的请求标头,由其自行决定.

你可以做的其他事情是

header("Location: http://someurl/somepage.php?referer=http%3A%2F%2Fthisurl%2Fthispage.php");
Run Code Online (Sandbox Code Playgroud)

也就是说,将referer URL作为查询字符串参数发送,然后您可以将其作为$_GET['referer'].这可能比依靠浏览器发送引用标头更可靠.