PHP标头位置:../location vs $ _SERVER [DOCUMENT_ROOT] /位置

时间:2016-12-29 12:26:39

标签: php redirect header location

所以,我做了一个简单的PHP登录,但当我尝试像这样重定向时:

const BASE_URL = 'http://192.168.1.102:8080/api';
似乎它没有做任何事情,但在我刷新页面后我登录了。
我将代码更改为此后:

$path = $_SERVER["DOCUMENT_ROOT"];  
header("Location: $path/admin/index.php");

它有效。

有人可以向我解释一下吗?

聚苯乙烯。抱歉我的英文不好

3 个答案:

答案 0 :(得分:1)

$_SERVER["DOCUMENT_ROOT"]; 

返回/var/www/html/yourfolder/之类的路径,但您必须重定向到website.com/yourfolder/localhost/yourfolder/

因此,它不会起作用。

答案 1 :(得分:1)

您是否尝试过打印$ path的值?

$ path的值相对于实际文件位置

e.g。 $path = '/c/inetpub/sites/example/main/'

您可能想要'/c/inetpub/sites/example/''/c/inetpub/sites/example/main/..'

之类的内容

答案 2 :(得分:1)

标题被发送到浏览器,因此它不是内部服务器操作。由于它不是内部重定向,因此您不处理内部路径。使用DOCUMENT_ROOT时,您将获得文件所在目录的内部服务器路径。

如果您想将网站的根目录作为网址引用,请使用/

header("Location: /admin/index.php");
header("Location: /"); # go to homepage, for example

您的..之所以有效,是因为您可能位于子目录中,..已转换为admin所在的父目录。