【发布时间】:2018-07-13 08:12:32
【问题描述】:
我一直在使用 php 中的 output_buffering(由 phpinfo() 确认),我刚刚发现打开它后,我的页面上会开始出现随机 404 错误,但页面内容加载正常且一切正常看起来不错。
这只发生在我的生产站点上。 PHP 5.5.35、Apache/2.4.18 (Unix)。我不知道这个 404 是从哪里发送的。有没有人对可能发生的事情有任何想法,或者我可以在我的服务器上搜索什么来修复它?
这些是我的响应标头,以防万一:
Cache-Control:s-maxage=10
Cache-Control:no-cache, must-revalidate, max-age=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:13021
Content-Type:text/html; charset=UTF-8
Date:Fri, 02 Feb 2018 18:31:59 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Keep-Alive:timeout=5, max=96
Server:Apache
Strict-Transport-Security:max-age=31536000; includeSubDomains; preload
Vary:Accept-Encoding
X-Powered-By:PHP/5.5.35
编辑: 我发现这个问题只发生在我从 Wordpress 实例加载“最近的帖子”的页面上。删除这个小部件对我来说并不是一个真正的选择,但我认为设置 404 标头是有原因的。有什么想法吗?
【问题讨论】:
-
拥有响应代码 = 404 并具有(可能有用的)内容的页面在技术上是可以的 (i) 你能告诉我们预期的结果是什么...404 或 200 (ii) 可以您确认行为是随机的还是可预测的?
-
我期望 200,行为是..奇怪。我有时会看到带有 404 错误的页面,并且硬刷新什么也没做 - 错误又回来了。然后我会在第二天早上来,每个不工作的页面都会返回 200 状态。所以我猜是不可预测的,但不是从一秒到下一秒。
-
奇怪。无论如何,请检查 PHP 错误日志中的“无法修改标头”或类似内容。发布您发现的任何错误。
标签: php wordpress apache http-status-code-404 output-buffering