Bol*_*wyn 8 rewrite cache gzip apache-2.2
我希望 Apache 通过网络发送 gzip 压缩的静态文件,但也希望 Apache 不总是一遍又一遍地对它们进行 gzip。所以我想如果 .gz 文件存在的话,它是否不可能交付。这个设置:
文件结构:
static/
|
|--- style.css
|
\--- style.css.gz
Run Code Online (Sandbox Code Playgroud)
以及 .htaccess 中的以下内容:
mod_rewrite 规则:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
Run Code Online (Sandbox Code Playgroud)
而这个设置:
AddEncoding x-gzip .gz
Run Code Online (Sandbox Code Playgroud)
实际上,只要发送 .gz 文件而不是 .css 文件,如果请求转到/static/style.css
. 问题只是,该文件作为“application/x-gzip”而不是“text/css”交付。使用 mod_rewrite 的 T 标志不会改变这一点。也没有明确的
AddType text/css .css
Run Code Online (Sandbox Code Playgroud)
有没有人有想法,我如何才能实现所需的行为?或者出于某种我不认为的原因是不必要的?
编辑:还有一个额外的困难:将原始文件发送给没有 gzip 支持的客户端。有谁知道这是如何工作的?
将正确版本发送到不接受 gzip 的浏览器的解决方案是:
RewriteCond %{HTTP:Accept-Encoding} !gzip
...your rules here...
Run Code Online (Sandbox Code Playgroud)
此外,还有另一种更改类型的方法,即:
<FilesMatch .*\.css.gz>
ForceType text/css
</FilesMatch>
<FilesMatch .*\.js.gz>
ForceType text/javascript
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
哈。
归档时间: |
|
查看次数: |
2600 次 |
最近记录: |