执行重定向时获取请求页面名称或url


Get request page name or url when doing a redirection

如何获取加载源页面的请求页面名称或uri。

解释如下:

index.php

<?php
  header('Location:target.php');
?>

target.php

<?php
  // How to check here if the redirection has happened from index.php
?>

您可以使用下面的代码

echo $_SERVER["HTTP_REFERER"];

但是,为了确保您能够真正获得页面的确切来源,您可以在进行重定向之前将当前url存储到会话中,并将其读取到下一个页面。

在原始页面

$_SESSION['origin'] = $_SERVER['REQUEST_URI'];

然后在下一页

echo $_SESSION['origin'];

您可以使用$_SERVER["HTTP_REFERER"],但它不可信。某些浏览器将具有正确的值,而另一些浏览器将具有null值。

以下是php手册对它的描述:

"HTTP_REFERER"引用用户代理到当前页面。这是由用户代理设置的。不是全部用户代理将对此进行设置,有些代理提供修改的能力HTTP_REFERER作为一个功能简而言之,它不能真正被信任

简而言之,我不认为你能得到一个可靠的解决方案来满足你的需求。