网站主机为LAMP架构,即Linux+ Apache+MySQL+PHP,程序使用wordpress。 1. 在httpd.conf 或者博客根目录的.htaccess文件中加入如下规则(Apache服务器需要支持 mod_deflate)
复制代码代码如下:
<ifmodule mod_deflate.c>
AddOutputFilter DEFLATE html xml php js css </ifmodule> 或者添加 <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css </ifmodule>
经查看,主机的Apache支持mod_deflate(使用httpd -M查看是否有mod_deflate模块,或者查看你的httpd.conf文件中LoadModules有没有这个mod_deflate模块开启),复制以上代码到httpd.conf文件的结尾,重新启动apache服务即可实现gzip压缩。
复制代码代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase /blog #更改为自己的博客的目录 RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)(js|css|html|htm)$ /gzip.php?file=$1$2&type=$2 [L] </IfModule> 可以通过URL Rewrite的方式请求这个gzip.php文件 (该文件需要放在”/”目录),这样静态文件的gzip压缩就OK了。 对于php动态网页,常见的就是wp输出的页面,可以通过一个插件(gzippy)实现,直接到wp后台,在插件搜索里面输入“gzippy”然后安装即可。gzippy代码:
复制代码代码如下:
<?php
function gzippy() { ob_start(‘ob_gzhandler’); } if(!stristr($_SERVER['REQUEST_URI'], ‘tinymce’) && !ini_get(‘zlib.output_compression’)) { add_action(‘init’, ‘gzippy’); } ?> 同时,对于主机的apache不支持mod_deflate,想让已经安装好的apache支持该模块,那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c 。
这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。
很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示:
文件修改其中的 LDFLAGS 值为 “-lz”,然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。 至些,完成了在apache上开启gzip的测试,与大家共同学习。 (责任编辑:IT) |