内容编码:gzip不适用于text / html Content-Type

时间:2014-07-23 16:41:27

标签: apache magento

我在.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>

enter image description here

enter image description here

3 个答案:

答案 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即可。幸运的是,它为我做了。