国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > php控制页面浏览器缓存与启用gzip传送

php控制页面浏览器缓存与启用gzip传送

来源:程序员人生   发布时间:2014-03-15 00:57:20 阅读次数:2845次

本文章来给各位同学介绍php控制页面浏览器缓存与启用gzip传送页面方法,希望此代码对各位同这会有所帮助,同时没有服务器权限的朋友可这样来实现服务器gzip页面传输。

php实例gzip传输页面,可以用于静态资源与html页面,修改一下也适合于其他语言,代码如下:

  1. //缓存过期时间(Cache-Control, http1.1协义), 推荐使用 
  2. $secs = 0; //秒 
  3. header("Cache-Control: s-maxage=$secs, max-age=$secs, must-revalidate, proxy-revalidate"); 
  4. // 缓存过期时间为24小时(Expires) 
  5. $offset = 3600 * 24; 
  6. $expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"
  7. Header($expire);  
  8. //Last-Modified, 最后修改的时间 
  9. $gmt_mtime = gmdate('D, d M Y H:i:s', time() ) . ' GMT'
  10. header("Last-Modified: " . $gmt_mtime );    
  11. //启用gzip压缩 
  12. ob_start(); 
  13.     ... your php code ... 
  14.     ... your php code ... 
  15.     ... your php code ... 
  16.     header('Content-Length: ' . ob_get_length()); 
  17. ob_end_flush();    

如果你有服务器权限可参考apache开启gzip传输

一,找到你的httpd.conf文件,打开找到如下

LoadModule deflate_module modules/mod_deflate.so

把前面的#去了,因为mod_deflate.so模块默认是关闭的,好了下面一下

二,把现面代码放到你httpd.conf文件最后面就好了,代码如下:

  1. <IfModule mod_deflate.c> 
  2. SetOutputFilter DEFLATE 
  3. DeflateCompressionLevel 5 
  4. AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript 
  5. </IfModule> 

重启你的apache就KO了

iis开启gzip页面传输

1. 打开Internet信息服务(IIS)管理器,右击“网站”-》“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”;

2. 在Internet信息服务(IIS)管理器,右击“Web服务扩展”-》“增加一个新的Web服务扩展。。.”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;

3. 使用文本编辑器打开C:WindowsSystem32inetsrvMetaBase.xml(建议先备份),找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,找到Location =”/LM/W3SVC/Filters/Compression/deflate“用于设置deflate压缩,上面两个节点紧挨着,并且设置的属性相同。

如果需要压缩动态文件,则将HcDoDynamicCompression设置为”TRUE“,并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;

如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为”TRUE“,

并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。

HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property

HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property

说明:这两个属性值一般推荐设置为9, 具有最佳性价比。

注意:

1.在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2.修改完成后开启iisadmin服务,并执行iisreset命令

关于SEO的测试

压缩是否对SEO有影响,经测试,开启后仍然可以被很好的收录。

关于对SEO影响的研究文章,还可以参考下面的几篇文章。

具体的效率问题,将继续监控以作研究.

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生