如何使用PHP创建错误404页面?

2022-08-30 06:52:47

我的文件处理来自我的内部终结点 的所有请求。然后,PHP 脚本检查请求的页面是否在其页面数组中。.htaccess/word_here/page.php?name=word_here

如果没有,如何模拟错误 404?

我试过了,但它没有导致我的404页面配置通过显示。ErrorDocument.htaccess

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

我是否正确地认为重定向到我的错误404页面是错误的?


答案 1

生成 404 页面的最新答案(从 PHP 5.4 或更高版本开始)是使用http_response_code

<?php
http_response_code(404);
include('my_404.php'); // provide your own HTML for the error page
die();

die()不是绝对必要的,但它可以确保您不会继续正常执行。


答案 2

您正在执行的操作将起作用,浏览器将收到404代码。它不会显示您可能期望的“未找到”页面,例如:

未找到

在此服务器上找不到请求的 URL /test.php。

这是因为当PHP返回404代码时,Web服务器不会发送该页面(至少Apache不会)。PHP 负责发送自己的所有输出。因此,如果您想要类似的页面,则必须自己发送HTML,例如:

<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
include("notFound.php");
?>

您可以将 Apache 配置为对其自己的 404 消息使用相同的页面,方法是将其放在 httpd.conf 中:

ErrorDocument 404 /notFound.php

推荐