为什么Hostgator主机中.htaccess配置的Gzip压缩不生效
Hostgator主机Gzip压缩配置不生效的解决方法
- 确认mod_deflate模块已启用
Hostgator多数套餐默认开启该模块,你可以通过创建phpinfo文件,搜索mod_deflate确认是否在已加载模块列表。如果未加载,直接联系主机商技术支持开启即可。 - 调整.htaccess规则顺序
Gzip压缩规则需要放在所有重写规则(比如CMS固定链接规则、跳转规则)的最上方,避免被其他规则拦截导致失效。 - 修正配置语法大小写
Apache对标签大小写敏感,你当前使用的 <ifmodule mod_deflate.c>需要修改为首字母大写的<IfModule mod_deflate.c>,才能正确识别模块。 - 替换为兼容配置
部分Hostgator环境对AddOutputFilterByType兼容性较差,可以替换为下方官方推荐的配置:
<IfModule mod_deflate.c> SetOutputFilter DEFLATE # 配置不需要压缩的资源 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico|exe|zip|rar|gz)$ no-gzip dont-vary # 适配老旧不支持压缩的浏览器 BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent env=!dont-vary # 指定压缩的资源类型 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css 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 </IfModule>
- 清除缓存后测试
修改配置后,需要清空主机自带的静态缓存、CDN缓存,同时清空本地浏览器缓存,再用Gzip测试工具检测,避免旧缓存导致结果有误。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

