我通过apache提供所有内容,Content-Encoding: zip但即时压缩.我的大量内容是磁盘上的静态文件.我想事先gzip文件,而不是每次请求时压缩它们.
我认为,这是mod_gzip在Apache 1.x中自动执行的操作,但只是将文件与.gz放在一起.不再是这种情况了mod_deflate.
我主持一个基本上由.html和.data文件组成的JavaScript游戏.如果我用gzip压缩它们,它们的大小会缩小到25%.所以我想这样做.
我不是百分百肯定,但我认为使用mod_gzip或mod_deflate即时进行压缩,因为内容不会改变,所以总是浪费cpu时间.
所以我想预先编译内容.因此,我将.gz放在未压缩文件旁边,并将重写规则放在.htaccess中:
RewriteEngine on
# If client accepts compressed files
RewriteCond %{HTTP:Accept-Encoding} gzip
# and if compressed file exists
RewriteCond %{REQUEST_FILENAME}.gz -f
# send .html.gz instead of .html
RewriteRule ^(.+)\.(html|css|js|data)$ $1.$2.gz [T=text/$2,E=GZIP:gzip,L]
Header set Content-Encoding gzip env=GZIP
Run Code Online (Sandbox Code Playgroud)
重定向工作正常,我可以请求game.html并实际获得发送的game.html.gz. 但是,浏览器不会只显示它.相反,它会询问我保存文件的位置.我该如何解决这个问题?或者也许有另一种方法来实现我的目标?