我直接从html5boilerplate.com复制了以下.htaccess
文件:
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
YSlow只显示一个未压缩的文件,其文件名为testing.cache
,其内容是html和css的混合。我将文件重命名为testing.html
,文件压缩得很好。我期望testing.cache
文件也会被压缩,因为它属于text/html
组(这是我在页面加载时通过ajax加载的文件)。所以,我想知道我是否可以这样:
<FilesMatch "\.(cache)$">
someDirectiveToCache .cache file
</FilesMatch>
我看了mod_deflate任何匹配指令,但没有运气。当然,我可以将其保留为testing.html
,但我想知道如何为testing.cache
做到这一点。另外,我假设FilesMatch
可以在<IfModule mod_deflate.c>
模块中使用,因为它可以在<IfModule mod_expires.c>
内使用(测试并使用它),如下所示:
<FilesMatch "\.(cache)$">
ExpiresDefault "access plus 1 hour"
</FilesMatch>
我的Apache版本(如果重要)是: 2.2.15 。
答案 0 :(得分:5)
我设法让这个工作,实际上最终很容易。我浏览了所有文档,找到了AddOutputFilter
指令,这个指令很简单,实际上可以使用扩展。
版本2.2的文档中所述的AddOutputFilter directive syntax是:
AddOutputFilter filter[;filter...] extension [extension] ...
在我添加AddOutputFilterByType
指令后的示例中:
AddOutputFilter DEFLATE cache
希望这有助于将来。