我使用.htaccess
文件重写所有URI地址,将用户带到index.php
,其中某些代码根据URL确定要包含的文件。
如果URL位于标题子文件夹的子文件夹中,则include函数不会获取文件。
例如
index.php
包含位于examplefolder/content/page.php
的文件。该文件随后在内容页面上包含标题,但include('../header.php');
无效。该网址为example.com/news/latest
。
我怎样才能让它发挥作用?
答案 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');