0

这是我使用 PHP 函数 dirname() 的问题

让我首先解释一下,我正在一个网站上定义一个常量,如下所示:

define('ROOT', dirname(__FILE__));

这在共享主机上运行良好,但我不得不将网站移动到专用服务器上,现在我尝试使用绝对链接调用的一些文件返回 404。当我查看它们使用的路径时,会出现如下内容:

http://myIp/var/www/myWebsite/[...]/image.jpg

发生的情况是,我的“ROOT”常量是“/var/www/myWebsite”,但代替“替换”我的域,它被添加到它的末尾。这是没有意义的,因为我的 Apache VirtualHost 将所有对“myIp”的请求发送到本地文件夹“/var/www/myWebsite”。

我不知道错误是来自我的 PHP 代码,还是来自我的 Apache VirtualHost。

感谢您的帮助,我确定这很愚蠢,但我不知道我做错了什么:)

4

1 回答 1

0

我认为您将服务器路径与站点路径混淆了。

您不想使用 dirname 为您提供 Web 资产的路径。

如果您真的想这样做,您可以做的是删除您的 Web 根目录的路径。

这可能有效:

define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));

于 2015-01-30T14:22:39.743 回答