我的.htaccess配置哪里出错了?GZIP压缩未生效导致页面加载慢
配置问题排查
- 模块兼容性问题:你当前使用的是Apache 1.x时代的
mod_gzip模块配置,目前主流服务器环境均使用Apache 2.x默认搭载的mod_deflate压缩模块,若你的服务器未额外安装mod_gzip,这部分配置会完全不生效。 - 语法错误:原有配置存在两处语法问题:一是配置块内有冗余的裸行
BEGIN GZIP COMPRESSION,二是闭合标签写法错误,</IfModule mod_gzip.c>不符合Apache配置规范,正确闭合仅需写</IfModule>。 - 压缩覆盖范围不全:现有配置仅覆盖了少部分MIME类型,JSON、普通JavaScript、字体、XML等常见可压缩资源均未纳入压缩范围,也会导致资源体积过大拖慢加载速度。
修正后的配置方案
推荐mod_deflate版本(适配99%以上主流Apache环境)
# BEGIN GZIP COMPRESSION <IfModule mod_deflate.c> # 开启压缩 SetOutputFilter DEFLATE # 指定需要压缩的MIME类型 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/json AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE font/woff AddOutputFilterByType DEFLATE image/svg+xml # 排除不需要压缩的资源 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp|ico|exe|zip|rar|gz)$ no-gzip dont-vary </IfModule> # END GZIP COMPRESSION
兼容mod_gzip的修正版本(仅确认服务器安装该模块时使用)
# BEGIN GZIP COMPRESSION <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl|json|xml|svg|ttf|woff)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/(javascript|x-javascript|json|xml).* mod_gzip_item_include mime ^font/.* mod_gzip_item_include mime ^image/svg\+xml mod_gzip_item_exclude mime ^image/(png|jpe?g|gif|webp|ico).* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule> # END GZIP COMPRESSION
其他加载速度优化建议
- 建议在.htaccess中补充静态资源的浏览器缓存配置,避免用户重复加载相同资源
- 检查页面图片资源是否做了体积压缩、是否采用了WebP等更优的存储格式
- 可排查服务器本身的后端逻辑响应耗时,若PHP业务逻辑执行慢也会直接拉高整体加载时间
内容的提问来源于stack exchange,提问作者Ibrahim Saheed
相关产品推荐
相关产品推荐

