到目前为止,我的php应用程序假定HTTP 1.1无处不在。所以我定义了所有标题:
invokedynamic
但现在我的服务器也支持HTTP 2,我想用正确的HTTP状态代码更新所有标头响应。
如何获取http请求的HTTP协议版本?
(我的网络服务器是nginx,但我想如果我使用的是nginx或apache则无关紧要。)
答案 0 :(得分:9)
服务器协议应该可以从服务器环境通过SERVER_PROTOCOL
获得,通常通过应用程序内的$_SERVER['SERVER_PROTOCOL']
公开。
来自Apache 2.4下的phpinfo()
:
SERVER_PROTOCOL => HTTP/1.1
答案 1 :(得分:0)
更改/etc/nginx/factcgi_params:
#fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PROTOCOL HTTP/2.0;
标题应为: -
header($_SERVER['SERVER_PROTOCOL'].'404 Not Found');