2012-01-11 33 views
5

通常情况下,把从PHP中的HTTP状态首部时,一会发送HTTP标头是这样的:对于FCGI,还需要使用'状态:404 Not Found'吗?

header("HTTP/1.0 404 Not Found"); 

然而,PHP manual说,对FCGI主机,一个需要发送一个“状态”标头然后由FCGI模块转换成HTTP标头:

header("Status: 404 Not Found"); 

我使用的是Windows 7计算机上运行mod_fcgi Apache 2.2的PHP和使用发送头球攻门稍稍header("HTTP/1.0 404 Not Found");似乎很好地工作。

这是最近发生了什么变化吗?我还需要为FCGI主机发送Status标题吗?任何人都可以证实其他平台(solaris,linux)和其他网络服务器(nginx,lighttp)?

回答

3

我不相信你需要使用'状态'风格标题,除非你有选项cgi.rfc2616_headers启用。 。

该选项的描述http://php.net/manual/en/ini.core.php

“指定PHP在发送HTTP响应 代码时使用何种报头如果设定为0,PHP发送一个Status:由 的Apache支持的头和其他web服务器,当这个选项设置为1时,PHP将 发送到RFC 2616标准头,除非你知道 你正在做什么,否则将其设置为0。

基本上你会发送HTTP风格的头文件到PHP,然后PHP会在必要时将这些头文件转换为'状态'风格头文件。这些年来,似乎有各种各样的错误,这些错误或者被错误地转换,或者一次发送多个“状态”标题 - 但是现在所有这些错误似乎都已修复。所以我认为你可以安全地设置HTTP风格的头文件并让PHP转换它们。

另外我只是测试并发送头(“HTTP/1.0 404 Not Found”);使用FastCGI在我的开发环境中正常工作

相关问题