До сих пор мое приложение 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']
через $_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');