如何在PHP中重定向到同一页面

2022-08-30 13:14:14

如何使用PHP重定向到同一页面?

例如,在本地,我的网址是:

http://localhost/myweb/index.php

如何在我的网站内重定向到另一个页面,例如:

header("Location: clients.php");

我知道这可能是错的,但我真的需要把整个事情?如果以后不是呢?http://localhost/

有没有办法做这样的事情?另外,我有很多代码,然后在最后处理完一些代码后...我正在尝试使用它进行重定向。这样可以吗?


答案 1

我重新加载同一页面的首选方法是$_SERVER['PHP_SELF']

header('Location: '.$_SERVER['PHP_SELF']);
die;

不要忘记在你的 header() 之后死亡或退出;

编辑: (感谢@RafaelBarros)

如果查询字符串也是必需的,请使用

header('Location:'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']);
die;

编辑:(感谢@HugoDelsing)

当 htaccess url 操作发挥作用时,$_SERVER['PHP_SELF'] 的价值可能会把你带到错误的地方。在这种情况下,正确的URL数据将用于您的重定向,这可能看起来像Nabil在下面的答案:$_SERVER['REQUEST_URI']

header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
exit;

如果需要,还可以使用 $_SERVER[REQUEST_URI] 来分配正确的值。如果您大量使用重定向功能并且不想更改它,这会有所帮助。只需在请求处理程序中设置正确的 vale,如下所示:$_SERVER['PHP_SELF']

$_SERVER['PHP_SELF'] = 'https://sample.com/controller/etc';

答案 2

另一个优雅的是

header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
exit;

推荐