Php Header()和上面的目录

Php Header()和上面的目录,php,header,Php,Header,可能重复: 函数头()找不到上面的目录 $link = "../hide/success-registr.phtml"; header("Location: $link"); 它的路径权限和文件存在。您需要提供一个绝对URL,例如: $link = "http://www.mydomain.tld/public/success-registr.phtml"; header("Location: $link"); 注意:浏览器将请求提供的URL,因此不可能使用“隐藏”页面/响应。您可以尝试

可能重复:

函数头()找不到上面的目录

$link = "../hide/success-registr.phtml";
header("Location: $link");

它的路径权限和文件存在。

您需要提供一个绝对URL,例如:

$link = "http://www.mydomain.tld/public/success-registr.phtml";
header("Location: $link");
注意:浏览器将请求提供的URL,因此不可能使用“隐藏”页面/响应。

您可以尝试

$link = realpath('../hide/success-registr.phtml');
$rootPath = 'some/root/path';

$link = str_replace($rootPath, 'http://', $link);
来自php.net

HTTP/1.1需要一个绝对URI作为»位置:包括方案、主机名和绝对路径的参数,但有些客户端接受相对URI

始终建议使用带有header()位置的绝对路径(完整uri)


有时,相对路径会起作用,但在目录结构中肯定不会上升一级,除非在将其作为参数传递之前对路径进行一些操作。

该路径是否在web服务器的文档根目录中?(注意,您应该在
位置
标题中使用带有域和协议的完整URL),它将提供一个文件系统路径,这可能与web服务器路径不同。大多数浏览器都会尊重相对URL,尽管这是一个不正确的实现。但您仍然不应该依赖错误恢复。@MichaelBerkowski可能是因为每个浏览器都试图尽可能灵活。但正如你已经指出的,它不是盲目信任的东西,而且容易导致“不稳定”的行为。不存在。它的另一个文件夹,不是web服务器,我想。@Quentin我不是说它可以使用,只是它不可能是这里的错误源。