PHP包括不同的URI结构

时间:2012-07-13 19:26:20

标签: php include directory

我使用.htaccess文件重写所有URI地址,将用户带到index.php,其中某些代码根据URL确定要包含的文件。

如果URL位于标题子文件夹的子文件夹中,则include函数不会获取文件。

例如

index.php包含位于examplefolder/content/page.php的文件。该文件随后在内容页面上包含标题,但include('../header.php');无效。该网址为example.com/news/latest

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:1)

您可以使用chdir()功能更改Web服务器上的当前工作目录,以使相对路径正常工作。

要查看当前工作目录是什么,只需echo getcwd();一旦这样做,您可能会意识到您不需要相对路径,并且您可以根据当前工作目录构建包含是(如果您正在重写index.php,那么您的所有页面都将从相同的基本路径开始,即Web根目录。)

答案 1 :(得分:1)

如果您将所有网址重写为/index.php,则所有请求都将在/目录(即文档根目录)中运行。

因此,如果您要包含examplefolder/content/page.php并且从那里想要包含文件examplefolder/header.php,那么这正是您要编写的内容,因为包含文件不会更改当前的工作目录执行的线程。

E.g。

include('examplefolder/header.php');