2011-05-01 109 views
13

我一直在创建一个网站,并通过gtmetrix.com检查它的速度。我使用了以下.htaccess文件来压缩.js, .css和更多文件。通过.htaccess Gzip压缩不起作用

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

ErrorDocument 401 /401.php 
ErrorDocument 403 /403.php 
ErrorDocument 404 /404.php 
ErrorDocument 500 /500.php 

Options Indexes 
IndexOptions FancyIndexing 

ExpiresActive On 
ExpiresDefault "access plus 7 days" 
ExpiresByType application/javascript A2592000 
ExpiresByType application/x-javascript A2592000 
ExpiresByType text/javascript A2592000 
ExpiresByType text/html A2592000 
ExpiresByType text/xml A2592000 
ExpiresByType text/css A2592000 
ExpiresByType text/plain A2592000 
ExpiresByType image/gif A2592000 
ExpiresByType image/jpg A2592000 
ExpiresByType image/jpeg A2592000 
ExpiresByType image/png A2592000 
ExpiresByType image/bmp A2592000 
ExpiresByType application/x-shockwave-flash A2592000 

<FilesMatch "\.(html?|txt)$"> 
    ForceType 'text/html; charset=UTF-8' 
</FilesMatch> 

<FilesMatch "\.(css)$"> 
    ForceType 'text/css; charset=UTF-8' 
</FilesMatch> 

<FilesMatch "\.(js)$"> 
    ForceType 'text/javascript; charset=UTF-8' 
</FilesMatch> 

<FilesMatch "\.(css|js)$"> 
    Header append Vary Accept-Encoding 
</FilesMatch> 

但是当我运行该页面测试显示以下-----

Compressing the following resources with gzip could reduce their transfer size by 882B (48% reduction). 

Compressing http://wooflux.co.cc/ could save 645B (48% reduction). 
Compressing http://wooflux.co.cc/style.css could save 237B (51% reduction). 

但是我已经做了gzip压缩在我.htaccess文件。我不会在这里发生什么问题,顺便说一下,我对这种编码风格很陌生。所以请让我知道如果我做错了或没有。

回答

30

我没有使用mod_gzip的,但这里是我的.htaccess我通过mod_deflate模块使用的gzip的.js,.css和其他文件:

#Gzip 
<ifmodule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x- javascript application/javascript 
</ifmodule> 
#End Gzip 

如果你是不是已经意识到这一点,Firebug很用于检查下载的内容是否被压缩。点击Firebug中的“Net”选项卡,然后执行shift-f5让Firefox重新加载所有.js和.css文件,以便它们显示在Net面板中。单击.js或.css文件旁边的“+”,然后单击“标题”选项卡。如果回复是gzip,你会在Response Headers部分看到“Content-Encoding gzip”。 IE浏览器,Safari浏览器和Chrome浏览器同样提供了相同的功能。

one gotcha regarding gzipping .js and .css files on IE6要注意。我认为它只适用于IE6 SP1用户。

+2

BTW,确保mod_gzip的和/或MOD_GZIP Apache模块安装。你也可能想检查Apache错误日志是否有任何适用的错误。 – 2011-05-01 06:06:28

7

下面是文件扩展名使用的语法。

<IFModule mod_deflate.c>
<filesmatch "\.(js|css|html|jpg|png|php)$">
SetOutputFilter DEFLATE
</filesmatch>
</IFModule>

1

在我的情况下,mod_gzip的或mod_deflate模块甚至使其启用并在htaccess文件写它后不工作。

然后,我结束了在我的PHP文件,它帮我压缩我的PHP和HTML文件中使用“ob_gzhandler”。这并不像mod_gzip的或mod_deflate模块一样好,但暂时为你服务的情况下,如果你不能在其他得到运气。

我对在我的上方index.php文件使用,之前装什么是代码,

<? ob_start("ob_gzhandler"); ?>