我有一个博客在专用虚拟服务器上运行最新稳定版本的WordPress,情况如下。(用W3 Total Cache、Hyper Cache或Quick Cache替换缓存插件,因为我已经尝试了这三种方法,但结果相同。)
已禁用[缓存插件]。我访问了网站上已知的错误链接(http://example.com/xyzz/)并收到404错误页面。我可以在Chrome的Inspector和/或Firebug中验证“404 Not Found”状态是否在HTTP标头中得到了正确的服务。
我打开[缓存插件]并访问相同的URL。在初次访问时,我收到了一个缓存页面(通过HTML源代码底部插件插入的调试注释进行验证),该页面在HTTP头中具有正确的“404未找到”状态。
如果我再次访问该页面(http://example.com/xyzz/),我收到了来自上面#2的相同缓存页面,向用户显示“404-page Not Found”错误,但HTTP标头中的状态为“200 OK”。
如果我关闭[缓存插件]并再次访问该页面,我将再次收到一个未缓存的页面,该页面在HTTP标头中具有正确的“404未找到”状态。
你知道这里发生了什么吗?这似乎导致了一个问题,Google Bot试图索引一些不存在的页面,因为它看到的是“200 OK”HTTP头,而不是正确的404。
最合适的回答,由SO网友:berberich 整理而成
进一步的故障排除使我相信这与我使用的主题有某种关联。在禁用它并启用另一个之后,我在使用缓存插件时收到了正确的404头。
我仍然不知道主题中的什么会导致这种情况,但至少有一个解决方法。