首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中重定向到同一页面

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

Stack Overflow用户
提问于 2011-11-15 11:05:43
回答 9查看 157.1K关注 0票数 34

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

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

http://localhost/myweb/index.php

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

header("Location: clients.php");

我知道这可能是错误的,但我真的需要把整个事情放在一起吗?如果以后它不是http://localhost/怎么办?

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

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-11-15 11:11:43

有许多不同的$_SERVER (docs)属性可返回有关当前页面的信息,但我首选的方法是使用$_SERVER['HTTP_HOST']

header("Location: " . "http://" . $_SERVER['HTTP_HOST'] . $location);

其中,$location是域之后的路径,以/开头。

票数 12
EN

Stack Overflow用户

发布于 2011-11-15 12:09:33

我喜欢用$_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']中用于重定向,这可能看起来像纳比尔的答案如下:

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

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

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

Stack Overflow用户

发布于 2013-05-10 11:56:13

另一个优雅的例子是

header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
exit;
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8130990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档