我强烈建议你使用
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
而不是
header("HTTP/1.1 404 Not Found");
我在 Apache/2.0.59 (Unix) 上遇到了很大的麻烦,它使用 HTTP/1.0 响应,而我(意外地)添加了 "HTTP/1.1 200 Ok" 标头。
大多数页面显示正确,但在其中一些页面上,apache 添加了奇怪的内容。
页面顶部(在我任何 php 脚本输出之前)的 4 位十六进制代码,似乎是一种校验和,因为它会因页面和浏览器而异。(对于相同的页面和浏览器,代码相同)
页面底部(在我 php 脚本完整输出之后)的 "0"
我花了相当长的时间才找出 HTTP 标头中的错误协议。