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

标签 php redirect

如何使用 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/

相关文章:

php - .htaccess 问题,我无法删除 .php

php - 使用 Google Maps API 检查 XML

redirect - 谷歌分析接收数据与重定向导致 NS_BINDING_ABORTED

redirect - prestashop 1.6 本地主机重定向到实时 url

apache - 在同一个 Apache 中将 https 重定向到 https

php - 如何在php中添加用户角色

java - 将字符串数组作为 POST 传递给 PHP

php - 如何将 html 连接到 Azure 数据库?

apache - 重定向到域的不同 Apache 服务器,但保持 URL 不变

apache - 通过证书授权