1

我尝试在 Ubuntu 20.04 上使用 Apache 启用 brotli。它有效,但不适用于使用 PHP 生成的内容。

它适用于 HTML 文件:

$ curl -v -H "Accept-Encoding: gzip, deflate, br" https://server.tld/pp.html 2>&1 | grep content-encoding
< content-encoding: br

但如果它是 PHP 则不起作用 - 在这种情况下,内容是用“gzip”压缩的:

$ curl -v -H "Accept-Encoding: gzip, deflate, br" https://server.tld/pp.php 2>&1 | grep content-encoding
< content-encoding: gzip

奇怪的是,如果我将“br”指定为“Accept-Encoding”中的唯一值(浏览器使用“gzip,deflate,br”),它确实适用于 PHP:

$ curl -v -H "Accept-Encoding: br" https://server.tld/pp.php 2>&1 | grep content-encoding
< content-encoding: br

那么,这里有什么问题呢?

我通过运行启用了 brotli:

a2enmod brotli

并将以下部分添加到虚拟主机(随后是 apache 重启):

AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon
4

0 回答 0