До сих пор мое php-приложение везде поддерживало HTTP 1.1. Итак, я определил все заголовки так:
header("HTTP/1.1 500 Internal Server Error");
Но теперь мой сервер также поддерживает HTTP 2, и я хочу обновить все ответы заголовков, указав правильный код состояния HTTP.
Как получить версию HTTP-протокола HTTP-запроса?
(Мой веб-сервер — nginx, но я думаю, что это не имеет значения, если я использую nginx или apache.)
Протокол сервера должен быть доступен через SERVER_PROTOCOL
из серверной среды, обычно выставляется через $_SERVER['SERVER_PROTOCOL']
внутри вашего приложения.
От phpinfo()
под Apache 2.4:
SERVER_PROTOCOL => HTTP/1.1
изменения /etc/nginx/factcgi_params:
#fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PROTOCOL HTTP/2.0;
Заголовок должен быть: —
header($_SERVER['SERVER_PROTOCOL'].'404 Not Found');