php标题位置问题

时间:2011-07-28 21:23:42

标签: php http-headers

任何人都知道为什么会这样吗?

在我的代码中,我有以下行,我认为这会导致问题:

header('Location: /var/www/index.php');

但它一直给我以下错误:

[Thu Jul 28 22:15:18 2011] [error] [client 127.0.0.1] script '/var/www/account/index.php' not found or unable to stat, referer: http://localhost

可能出现的问题:

header('Location: /var/www/index.php');

位于以下文件中:

/var/www/account/oauth/openid/check.php

3 个答案:

答案 0 :(得分:5)

您正在将浏览器指向绝对路径。这是错误的,您需要使用相对于文档根目录的路径。浏览器无法在文档根目录之外看到任何内容。

在你的情况下

header('Location: /var/www/index.php');

应该是:

header('Location: /index.php');

由于/var/www/是您的文档根目录。

答案 1 :(得分:3)

当您可能只想将它们发送到/var/www/index.php时,会将浏览器发送到:index.php

您应该使用带位置标题的绝对网址,例如:

header('Location: http://mydomain.com/index.php');

答案 2 :(得分:1)

必须在header()调用中指定URL,您正在使用路径。尝试使用index.php的相对位置。

来自PHP documenation

  

HTTP / 1.1需要绝对URI作为»Location:includes的参数   方案,主机名和绝对路径,但有些客户接受   相对URI。