为什么';当我用php发送404头时,apache是否显示404错误?
我有一个为什么';当我用php发送404头时,apache是否显示404错误?,php,apache,mod-rewrite,http-headers,http-status-code-404,Php,Apache,Mod Rewrite,Http Headers,Http Status Code 404,我有一个头('HTTP/1.0404notfound')在代码的某个地方,但由于某种原因,它没有重定向到Apache的默认404页面 我对.htaccess文件有一个重写规则,它将每个请求重定向到index.php。这可能是问题所在吗?在这种情况下,PHP发送的标题对浏览器来说才是真正重要的。Apache不会创建自己的页面,因为您已经在处理该页面,如果您发送了一些内容,这两个内容将发生冲突 是的,.htaccess文件将阻止Apache显示错误页面,因为您的规则使Apache认为它不再有404错
头('HTTP/1.0404notfound')代码>在代码的某个地方,但由于某种原因,它没有重定向到Apache的默认404页面
我对.htaccess文件有一个重写规则,它将每个请求重定向到index.php。这可能是问题所在吗?在这种情况下,PHP发送的标题对浏览器来说才是真正重要的。Apache不会创建自己的页面,因为您已经在处理该页面,如果您发送了一些内容,这两个内容将发生冲突
是的,.htaccess
文件将阻止Apache显示错误页面,因为您的规则使Apache认为它不再有404
错误,因为它已找到要显示的页面
发送标题实际上只是“状态消息”,不会使浏览器或服务器显示特定页面。(尽管大多数浏览器会)
正如Dav在评论中指出的,您需要将404个错误发送到他们自己的自定义错误页面 标题不是让Apache显示其404页面的内容。相反,当Apache显示其404页面时,它会发送一个404头。标题对浏览器而不是服务器有意义。Apache在找不到合适的文件显示时会显示404。由于您使用的是PHP脚本,Apache已经找到了一个可以显示的文件,因此不会显示自己的404页面。所以我应该重定向到自己的“未找到页面”页面?是的,如果PHP应用程序想要显示这样的消息,通常会这样做。请不要重定向。这使得纠正拼写错误变得更加困难。只需提供一个404页,并完成它。