这是使用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。
感谢您的帮助,我确定这有点蠢,但我无法弄清楚我做错了什么:)
答案 0 :(得分:0)
我认为您将服务器路径与站点路径混淆。
您不希望使用dirname为您提供网络资源的路径。
如果你真的想这样做,你可以做的就是删除你的网络根目录。
这可能有效:
define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));