1

我正在使用一个.htaccess文件来重写所有 URI 地址,以将用户带到index.php某些代码根据 URL 确定要包含的文件的位置。

但是,如果 URL 位于标头的子文件夹中,则包含函数不会获取文件。

例如。

index.php包括位于examplefolder/content/page.php. 然后,该文件在内容页面上包含一个标题,但include('../header.php');无法正常工作。网址是example.com/news/latest

我怎样才能让它工作?

4

2 回答 2

1

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

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

于 2012-07-13T19:30:37.253 回答
1

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

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

例如

include('examplefolder/header.php');
于 2012-07-13T19:34:06.413 回答