我想我发现当我有一个错误文档自定义错误页面时,包含并不总是有效,因为包含需要一个目录,而有错误的页面可能在不同的目录中。
directory1/directory2/thispagecausesa404error.php
directory1/thispagecausesa404error.php
如果我的错误文档页面中有include includepage.php;
,那么它将不起作用。
我决定将include_once $_SERVER['DOCUMENT_ROOT'].'/includepage.php';
添加到错误文档页面,这解决了问题,但我怀疑我做错了什么,或者没有看到在错误页面上完美包含的正确方法。
我做错了什么?
我建议永远不要依赖正确设置DOCUMENT_ROOT
。相反,通过__DIR__
魔术常量使用当前脚本的相对路径,例如
include __DIR__ . '/relative/path/from/this/script/to/includepage.php';
如果需要,路径还可以包含通过../
的父目录遍历,例如
include __DIR__ . '/../../some/dir/includepage.php';