如何使用 PHP 重定向到同一页面?
比如我在本地的网址是:
http://localhost/myweb/index.php
如何在我的网站内重定向到另一个页面,例如:
header("Location: clients.php");
我知道这可能是错误的,但我真的需要把整个东西都放上去吗?如果稍后它不是 http://localhost/
怎么办?
有没有办法做这样的事情?另外,我有很多代码,然后在处理完一些代码后结束......我正在尝试使用它进行重定向。可以吗?
最佳答案
我首选的重新加载同一页面的方法是 $_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 数据将在 $_SERVER['REQUEST_URI']
中用于您的重定向,这可能看起来像下面 Nabil 的回答:
header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
exit;
如果需要,您还可以使用 $_SERVER[REQUEST_URI] 将正确的值分配给 $_SERVER['PHP_SELF']
。如果您大量使用重定向功能并且不想更改它,这会有所帮助。只需像这样在您的请求处理程序中设置正确的值:
$_SERVER['PHP_SELF'] = 'https://sample.com/controller/etc';
关于php - 如何在 PHP 中重定向到同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130990/