我的 Apache 配置文件中有 VirtualHost 定义。在这个定义中,我已经实现了 SetOutputFilter DEFLATE。我的问题是我需要从 deflate 中排除大小小于 10k 的文件。 当我尝试使用 SetEnvIf Content-Length "^[0-9][0-9]?[0-9]?[0-9]?$"no-gzip 函数时,它不起作用。由于我的请求的内容长度在响应中被检查
最佳答案
可以在您的请求中设置一些特定的 header 。基于这个 header ,apache 可以决定是否压缩您的页面。
LoadModule deflate_module /modules/mod_deflate.so
LoadModule headers_module /modules/mod_headers.so
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
SetEnvIf DoCompress "^true" no-gzip dont-vary
AddOutputFilterByType DEFLATE text/css application/x-javascript text/html
</IfModule>
关于 Apache DEFLATE 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149221/