【发布时间】:2011-07-28 21:39:35
【问题描述】:
我的站点主目录中有一个 404.php 文件,我使用 header('Location: 404.php'); 有一段时间,直到有人说您应该改用 header('HTTP/1.0 404 Not Found');。所以我用它替换它,然后添加:ErrorDocument 404 /404.php 到我的 apache 配置文件并重新启动服务器,但它不起作用。
我尝试了不同的变体,包括 ErrorDocument 404 404.php 和 ErrorDocument 404 mywebite/404.php,但无济于事。
我的意思是,在早期使用header('Location: 404.php'); 时,它会重定向到 404.php 文件,但是当我用header('HTTP/1.0 404 Not Found'); 替换它时,它似乎只是跳过该行而不做任何事情。它肯定不是重定向。我要求重定向的原因是因为如果 $_GET 标头值无法识别,则页面应为 404。
【问题讨论】:
-
它有什么作用?是否显示 Apache 的 404 页面?
-
“有人说...”你听了吗?
-
404.php 显示我的自定义 404 页面,而 HTTP/1.0 404 Not Found 什么也不做。 php 文件就像什么都没发生一样继续运行。
-
我相信 ErrorDocument 仅在 Apache 不知道向何处发送请求时才相关。如果它向脚本发送请求,并且该脚本选择返回 404 标头,则 apache 不会调用第二个 404 脚本——它只会返回初始脚本的输出。
标签: php header http-status-code-404