在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用?

Posted

技术标签:

【中文标题】在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header(\'LOCATION:\'.__DIR__.\'/file.php\');` 一起使用?【英文标题】:How do I use the PHP constant __DIR__ with `header('LOCATION:'.__DIR__.'/file.php');` when using XAMPP on localhost Linux?在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用? 【发布时间】:2021-11-06 17:35:51 【问题描述】:

__DIR__ 给了我/opt/lampp/htdocs/folder。因为那确实是我的 Linux 文件系统位置,所以它不会使用 header('LOCATION:'.__DIR__.'/file.php'); 重定向。我怎样才能做到__DIR__ 不会一直到我的 Linux 根目录,而是转到更像 localhost/folder 的东西?我猜这是某种配置的东西,但我不知道。

我想这样做的原因是我可以设置一个const,我可以根据未来客户端放置我的 PHP 的位置来使用它进行重定向。

【问题讨论】:

类似header('Location: /folder/file.php');? 我可以不这样使用__DIR__吗?它仅用于包含和需要的东西吗?我可以忍受,但我想知道是否有办法做到这一点。 这就是__DIR__ 会做的——给出完整的路径~ 不是很适合你的目的,但在几种情况下很有用,而不仅仅是includes ... 这也将为您提供文件系统路径 - 也不适合您的情况。我更多地考虑$_SERVER['SERVER_NAME']$_SERVER['SERVER_PROTOCOL'] 之类的思路 现在似乎有什么问题?你想达到什么目的?如前所述,您不能使用__DIR__$_SERVER['DOCUMENT_ROOT'] 进行重定向。你可以使用类似header('Location: /folder/file.php');的东西重定向到http://localhost:8000/folder/file.php,因为http://localhost:8000是你的服务器。 【参考方案1】:

这是我想出的:

$dir = preg_replace('@^'.$_SERVER['DOCUMENT_ROOT'].'@', '', __DIR__);

看起来我只能在我获得 __DIR__ 的同一页面上使用它,所以它不能变成可重用的函数。

因此,只要$dir 在我使用header('LOCATION:' 的同一页面上,我就会像这样重定向:

header('LOCATION:'.$dir.'/../folder/file.php');

【讨论】:

以上是关于在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除转到 wordpress 的旧本地主机?

如何删除转到 wordpress 的旧本地主机?

无法使用Xam.Plugin.Media插件

获取实时 Wordpress 站点的副本,以便在 Linux 上使用 Xampp 在 localhost 上工作

CSS 不会在 XAMPP 上的 Laravel 8 + Jetstream 中加载

如何在浏览器上为 xampp htdocs 项目启用简单名称