关于gzip的困惑,是否压缩?

时间:2014-03-11 09:28:27

标签: php apache .htaccess gzip

很抱歉打扰了一个似乎记录很清楚的问题,但我尝试过的事情都没有让人满意。

上周我的公司从托管服务器切换到管理服务器,我仍然在优化它。

现在,Googles PageSpeed Insights告诉我,it is not compressedGTMetrix一样。 GidNetwork告诉我压缩工作正常。

我已添加

<IfModule mod_deflate.c>
<FilesMatch "\.(html|php|txt|xml|js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

到我的.htaccess,(按照推荐的here)正常工作,我改变的其他设置都很好,以及

zlib.output_compression = On

到我的php.ini。 整个.htaccess和php.ini可以在jsFiddle看到。

在Firefox和Chrome中发送和接收的标头声称压缩正在发生。

我还在我的主目录中创建了一个httpd.conf,因为我的服务器上还没有。{我应该把文件移到其他地方吗?

我真正想知道的事情:

Soo ......我做错了什么?它被压缩了吗?不是吗?如何让Google“看到”压缩?

非常感谢你的帮助。

4 个答案:

答案 0 :(得分:2)

这应该是您需要的功能,它应该自动生成您需要的标题:

http://www.php.net/manual/en/function.gzdecode.php

无论如何检查你的php版本,因为它只适用于php 5.4.0或更高版本。

答案 1 :(得分:1)

虽然我的浏览器接受deflate / gzip编码(Accept-Encoding: gzip, deflate),但您的服务器没有使用压缩数据回答:

HTTP/1.1 200 OK
Date: Tue, 11 Mar 2014 09:41:45 GMT
Server: Apache
Connection: Keep-Alive
Keep-Alive: timeout=2, max=200
Etag: "96-100e9-4f4517d791912"
Expires: Fri, 11 Apr 2014 13:28:25 GMT
Cache-Control: max-age=2692000, public
Vary: User-Agent

如果它被压缩,服务器也会发送

Content-Encoding:   deflate

使用FireBug或开发控制台查看标题。它必须是你的httpd.conf。 您不能简单地在主目录中创建此文件,Apache将加载它。

查看/etc/apache*/etc/httpd/*的配置文件。

答案 2 :(得分:1)

您已经启用了gzip压缩,但尚未将其设置为压缩某些文件类型,例如javascript和css。这就是Googles PageSpeed试图建议启用压缩的原因。要对这两种类型进行压缩,请使用

AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript

答案 3 :(得分:0)

对我来说最终压缩未解压缩的js / css文件的原因是什么,我还没有完全理解here

在这种方法中,javascript和css文件被php脚本强制gzip压缩。它还设置了新的&#34; Expire&#34; -Headers,因此如果您希望缓存超过5分钟,请更改数字。添加不同的文件比较棘手,但我认为可能。