PHP 302重定向期间无法在浏览器URL栏中保留地址

问题描述

在我的页面

/my/conditional/redirect/page/index.PHP

我有条件的 PHP 302重定向

<?PHP

if (!in_array($_SERVER['REMOTE_ADDR'],['369.168.492.123'])) {

  // header('HTTP/1.1 403 Forbidden');
  header('Location: https://'.$_SERVER['HTTP_HOST'].'/my/redirect/index.PHP',TRUE,302);
  exit;
}

else {

  [... PHP CODE HERE...]
}

?>

我尝试了以下代码

  • 如上所述
  • 带有和不带有TRUE302参数的
  • 有和没有exit;
  • 有和没有https://'.$_SERVER['HTTP_HOST']

没关系。重定向始终会将浏览器URL栏中的位置更改为:

/my/redirect/index.PHP

尽管我非常希望它能够坚持为:

/my/conditional/redirect/page/index.PHP

在不更新浏览器URL栏位置的情况下,要确保页面重定向(通过302 Redirect),我缺少什么?

解决方法

在不更新浏览器URL栏位置的情况下,要确保页面重定向(通过302重定向),我缺少什么?

什么都没有。这就是HTTP重定向的工作方式。

如果要保留URL,则需要执行内部重定向或代理请求,以便服务器返回所请求URL的内容。