PHP站点使用./dir/for include文件

PHP站点使用./dir/for include文件,php,apache,.htaccess,Php,Apache,.htaccess,我继承了一个站点,它对include目录使用./notation,并且在本地工作,所有链接都断开了 要使./notation用于相对文档路径,我可以对我的OS X AMP设置做些什么?您使用的不是/,而是绝对地址。在php中,如果您想使用绝对路径,必须在路径之前使用dirname(\uuuuu FILE\uuuuu)或\uuuuuu DIR\uuuuu,以使您的地址成为绝对地址 /不是根目录,而是当前目录 例如,而不是include('/inc/head.php')您可以使用: include(

我继承了一个站点,它对include目录使用./notation,并且在本地工作,所有链接都断开了


要使./notation用于相对文档路径,我可以对我的OS X AMP设置做些什么?

您使用的不是
/
,而是绝对地址。在php中,如果您想使用绝对路径,必须在路径之前使用
dirname(\uuuuu FILE\uuuuu)
\uuuuuu DIR\uuuuu
,以使您的地址成为绝对地址

/
不是根目录,而是当前目录

例如,而不是
include('/inc/head.php')您可以使用:

include(__DIR__.'/inc/head.php'); 
//or
include(dirname(__FILE__).'/inc/head.php');//if you haven't got php 5.3

在这段代码中,我假设目录“inc”位于站点根目录。

/
将在任何平台上工作。你说的“所有链接都断了”是什么意思?这和PHP有什么关系?我的意思是根目录./includes没有被拾取。取而代之的是:Warning:include(/inc/head.php)[function.include]:打开流失败:第1行的/Library/WebServer/Documents/path/to/site/root/index.php中没有这样的文件或目录当我在新选项卡中打开一个“缺失”的图像时,我得到的不是localhost/siteurl/images/image.jpg,而是localhost/images/image.jpg(当然是找不到文件)。为什么./path前缀不适用于本地文件/站点根目录?您描述的是两个不同的问题。一个是应用程序的include路径。另一个是图像的相对路径,而不是通过HTTP。在任何情况下,如果看不到脚本的路径和实际的include行,都无法帮助您。我猜在你的另一台服务器上,有一个特定的包含路径集。谢谢@Brad。我将查找include path常量。好的,但是index.php中的./in没有返回正确的链接,从include路径到.css样式表。即使是当前目录也应该能够从索引页找到./inc/include.php文件,对吗?逻辑上,是的。但我一直不喜欢这个符号,因为它严格等同于
path/file
,我认为css必须具有相对地址或完整URL(http://…)