是否有可能恢复 404 错误及内容?

是否有可能恢复 404 错误及内容?

使用 Apache,是否可以发送 404 状态标头,然后发送有效内容?因为这就是目前发生的情况http://doubleabody.com现在在 a2hosting.com 上。网络日志显示所有连接(主页除外)都处于 404 状态,但此后浏览器会收到有效内容。这会导致一些奇怪的事情发生。在 IE 中,当启用友好 HTTP 错误时,它会显示 404。在 IE 中,关闭友好 HTTP 错误后,它不会显示 404,并且可以正常显示内容。在所有其他浏览器中,它们似乎都看到了有效内容并忽略了服务器正在记录的 404 错误。

这个问题直到两周前才出现,14 个月来网站唯一的变化就是 Apache 系统像往常一样更新。(我承认客户要求我编辑主页模板并向 IE 用户显示有关该问题的消息。)

我想证明这是一个配置错误的 Apache 配置。我已经下载了这个 WordPress 站点的数据库和托管文件,现在我要进行故障排除,看看我的工作站上是否也有相同的代码存在问题。

但问题仍然存在——Apache 是否可以返回 404 状态标头并在之后仍然返回有效的 XHTML?

答案1

是的。404 并不意味着没有内容。您可以合法地提供 404 加内容,例如猜测用户真正想要什么,或者提供有用且漂亮的错误页面,其中包含指向您的文档的链接等。在这个特定情况下,我猜测前端控制器配置为使用智能 URL,即,名为 /page 的页面没有实际文件。这很可能意味着 Apache 已配置(使用 mod_rewrite)将所有不存在的文件请求发送到 /index.php(或类似文件),然后由 /index.php 决定为 URL 提供哪些内容。看来,一旦它选择了正确的内容,它就不会明确将状态设置为 200。我认为这不是 Apache 配置问题,而是 WordPress 配置问题。

编辑:也许您的 .htaccess 文件正在将丢失的文件重定向到 /index.php,并带有明确的 404 状态。

相关内容