您的代码在技术上是正确的.如果您查看该空白页面的标题,您将看到404标题,其他计算机/程序将能够正确识别未找到文件的响应.
当然,您的用户仍然是SOL.通常,404s由Web服务器处理.
用户:嘿,你在这个URI网络服务器上有什么东西吗?
网络服务员:不,我没有,404!这是一个显示404s的页面.
问题是,一旦Web服务器开始处理PHP页面,它已经通过它将处理404的点
用户:嘿,你在这个URI网络服务器上有什么东西吗?
Webserver:是的,我知道,这是一个PHP页面.它会告诉你响应代码是什么
PHP:嘿,OMG 404 !!!!!!!
网络服务器:好的废话,404页面的人已经回家了,所以我只会发送PHP给我的任何内容
除了提供404标头之外,PHP现在还负责输出实际的404页面.
您的代码在技术上是正确的.如果您查看该空白页面的标题,您将看到404标题,其他计算机/程序将能够正确识别未找到文件的响应.
当然,您的用户仍然是SOL.通常,404s由Web服务器处理.
用户:嘿,你在这个URI网络服务器上有什么东西吗?
网络服务员:不,我没有,404!这是一个显示404s的页面.
问题是,一旦Web服务器开始处理PHP页面,它已经通过它将处理404的点
用户:嘿,你在这个URI网络服务器上有什么东西吗?
Webserver:是的,我知道,这是一个PHP页面.它会告诉你响应代码是什么
PHP:嘿,OMG 404 !!!!!!!
网络服务器:好的废话,404页面的人已经回家了,所以我只会发送PHP给我的任何内容
除了提供404标头之外,PHP现在还负责输出实际的404页面.
if (strstr($_SERVER['REQUEST_URI'],'index.php')){ header('HTTP/1.0 404 Not Found'); echo "404 Not Found
"; echo "The page that you have requested could not be found."; exit(); }
如果您查看最后两条回波线,那么您将看到内容.您可以根据需要自定义它.
这是正确的行为,由您来创建404页面的内容.
蜘蛛和下载管理器使用404标头来确定文件是否存在.
(带有404标题的页面不会被谷歌或其他搜索引擎索引)
但普通用户不会查看http-header并将该页面用作普通页面.
对于记录,这是全案例处理程序:
加载默认服务器404页面,如果你有一个,例如为apache定义:
if(strstr($_SERVER['REQUEST_URI'],'index.php')){ header('HTTP/1.0 404 Not Found'); readfile('404missing.html'); exit(); }
从PHP 5.4开始你就可以了 http_response_code(404);