2016-12-29 89 views
0

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

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

它似乎喜欢它什么也没做,但我刷新页面后,我登录
后,我改变了我的代码如下:。

header("Location: ../admin/index.php"); 

它的工作原理。

难道有人请给我解释一下吗?

Ps。对不起喜欢/var/www/html/yourfolder/我的英语不好

+0

echo'$ path/admin/index.php'并看到值 –

+0

有了@sidyll的评论,现在就有意义了。谢谢。 – Fusyoo

回答

1

头被发送到浏览器,所以它不是一个内部服务器机动。由于它不是内部重定向,所以不处理内部路径。当您使用DOCUMENT_ROOT时,您将获得内部服务器路径到您的文件所在的目录。

如果要引用网站的根目录作为URL,请使用/

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

..工作,因为你可能是一个子目录,..被翻译成这也正是admin是父目录。

1
$_SERVER["DOCUMENT_ROOT"]; 

返回路径,但你必须重定向到website.com/yourfolder/localhost/yourfolder/

因此,这将无法正常工作。

1

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

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

例如, $path = '/c/inetpub/sites/example/main/'

你可能想要的东西,像'/c/inetpub/sites/example/''/c/inetpub/sites/example/main/..'

+0

“_ $的值是相对于实际文件的位置_”否,“$ path”是他的文档根目录是固定的。不相对于任何事物。 – sidyll