通过 htaccess 禁用 Apache http2 公告

Ste*_*eSt 2 apache .htaccess header upgrade http2

我在共享主机上有一个网站,在每个页面请求上都使用这些 HTTP 标头进行响应:

HTTP/1.1 200 OK
Date: Thu, 21 Sep 2017 14:34:46 GMT
Server: Apache
X-Powered-By: PHP/5.6.31
Access-Control-Allow-Origin: *
Upgrade: h2,h2c
Connection: Upgrade, Keep-Alive
Keep-Alive: timeout=5, max=400
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

正如您所注意到的,有Upgrade一个来自 Apache 的关于支持 HTTP2 协议的声明的标头。

出于某种原因,我需要禁用 Apache 的这种行为,以便在没有Upgrade标头的情况下发送响应。

谁知道如何从 .htaccess 文件中禁用它?我已经找到了这个解决方案:

Header unset Upgrade
Run Code Online (Sandbox Code Playgroud)

但这不是一个好方法,因为有时我需要Upgrade从我的代码中输出一个自定义标题(需要将固件升级广播到某些热敏打印机设备)。

谢谢

Bar*_*ard 5

尝试使用以下配置将其关闭:https : //httpd.apache.org/docs/2.4/mod/mod_http2.html#h2upgrade

或者,对于仅 .htaccess 的解决方案,请使用以下Header edit功能:

Header edit Upgrade (.*)h2,h2c(.*) "$1$2"
Run Code Online (Sandbox Code Playgroud)

请注意,这可能会给您留下一个空的升级标头,您可能必须根据服务器显示的内容(例如额外的逗号)更改配置。