Php 仍然需要使用';状态:404未找到';对于FCGI?

Php 仍然需要使用';状态:404未找到';对于FCGI?,php,http-headers,http-status-codes,Php,Http Headers,Http Status Codes,通常,当从PHP发送http状态头时,会发送如下http头: header("HTTP/1.0 404 Not Found"); 但是,表示对于FCGI主机,需要发送一个“状态”头,然后由FCGI模块将其转换为HTTP头: header("Status: 404 Not Found"); 我在Windows7机器上使用mod_fcgi运行带有PHP的Apache2.2,并使用头发送头(“HTTP/1.0 404未找到”)似乎工作正常 这是最近发生的变化

通常,当从PHP发送http状态头时,会发送如下http头:

header("HTTP/1.0 404 Not Found");
但是,表示对于FCGI主机,需要发送一个“状态”头,然后由FCGI模块将其转换为HTTP头:

header("Status: 404 Not Found");
我在Windows7机器上使用mod_fcgi运行带有PHP的Apache2.2,并使用
头发送头(“HTTP/1.0 404未找到”)似乎工作正常


这是最近发生的变化吗?我是否仍需要为FCGI主机发送
状态
标头?是否有人也可以为其他平台(solaris、linux)和其他Web服务器(nginx、lighttp)确认这一点?

我认为您不需要使用“状态”样式的标题,除非您启用了选项cgi.rfc2616\u标题

该选项的描述如下所示

告诉PHP在发送HTTP响应时要使用哪种类型的头 如果设置为0,PHP将发送一个Status:header,它受 Apache和其他web服务器。当此选项设置为1时,PHP将 发送»RFC 2616兼容标头。除非您知道,否则将其设置为0 你在做什么。”

基本上,您将向PHP发送HTTP样式的头,然后PHP在必要时将这些头转换为“Status”样式的头。多年来,似乎有各种各样的错误,这些错误要么被错误地转换,要么同时发送了多个“状态”标题——然而,所有这些错误现在似乎都被修复了。因此,我认为设置HTTP样式的头并让PHP转换它们是安全的

另外,我刚刚测试并发送了头文件(“HTTP/1.0 404未找到”);使用FastCGI在我的开发环境中运行良好