我在.htaccess中使用下面的配置。但是,当其他Content-Type被gzip压缩时,text / html Content-Type不会。谁知道为什么?
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</IfModule>
答案 0 :(得分:0)
尝试在其之前插入html的AddType,例如:
AddType text/html .html .htm
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
您可以在此处获得完整的MIME类型列表:http://www.htaccess-guide.com/adding-mime-types/
*Edit: Try to change the rule then:
<ifModule mod_deflate.c>
<filesMatch "\.(js|css|html|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
答案 1 :(得分:0)
我在Magento网站上遇到同样的问题时遇到了这个问题。在我的情况下,答案是在php.ini中启用zlib输出压缩,因为html是动态生成的。
答案 2 :(得分:0)
对我来说是因为字符集。而:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json text/json
没用,
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json text/json application/javascript;charset=utf-8 text/css;charset=utf-8
工作。我不想寻找更好的答案,例如我如何指示Apache从内容类型中解析字符集,我认为仅按原样提供整个String即可。幸运的是,它为我做了。