PHP:使用 header() 重定向相对路径的问题

执行

我正在用我大学的 XAMPP 做一个项目,他们要求我使用标头函数来执行重定向和要遵循的文件结构。但是我遇到了一些问题。我有以下文件结构:

后端/validateSession.php

后端/show.php

索引.php

登录.html

所以,validateSession.php 里面有这个:

session_start();
if(!isset($_SESSION["DNI"])){
$path = "./login.html";
header("location: ".$path);
}

而且 index.php 和 show.php 都必须包含 validateSession.php

索引.php:

include_once "./backend/validateSession.php";

显示.php:

include_once "./validateSession.php";

输入 index.php 时,validateSession.php 正确地将我重定向到 login.html

但是,如果我从 show.php 输入,则会出现错误,因为路径是 ./login.html 而不是 ../login.html

所以我的问题是:如果 index.php 和 show.php 需要不同的路径以便标题可以正确重定向我,我该如何解决这个问题?提前致谢。

编辑:标题应该将我重定向到 localhost/prog/TP/login.html,但如果我在标题中使用此路径,如果其他人试图从他们自己的 XAMPP 访问它,它可能无法工作。

伊恩

HTTP 重定向的路径是相对于域的,而不是相对于文件系统的(因为浏览器对此一无所知)。在这种情况下,您应该能够使用

$path = "/login.html";
header("location: ".$path);

请注意.路径开头的缺少domain.com/index.php, domain.com/backend/show.php(和任何其他人)都将重定向到domain.com/login.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章