我在 Apache2 Web 根目录中有一堆静态文件(例如index.xhtml
)。我无法控制服务器的配置,但可以.htaccess
在 Web 根目录中进行修改。
我想预先压缩文件(例如index.xhtml.gz
)以缩短加载时间并减少带宽消耗。但是,如果我这样做,不支持自动检测内容编码的用户代理将无法与该网站配合使用。
我认为这些代理与有能力的代理相比非常少见,因此内容应该以解压缩的形式提供仅有的如果代理不发送gzip
标Accept-Encoding
头。声称支持 gzip 但实际上不支持的代理无需担心。
大多数关于压缩的网站都假设它是即时执行的,我希望避免这种情况以减少消耗的 CPU 时间。
答案1
据我所知,只有当您有权在盒子上运行 CGI 脚本或破解 Apache 时才可以。
但是,通常的做法并不是按照您的要求去做。通常的做法是先将文件存储为未压缩状态,然后使用 mod_deflate 进行动态压缩。
#
# Compress most things
#
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
这是在我的 httpd.conf 中,它可能需要针对 .htaccess 进行一些更改。