xampp 默认不启用 gzip 压缩,必须手动启用 mod_deflate 模块并配置规则,否则所有“压缩提速”的尝试都无效;需取消 httpd.conf 中三行模块加载注释(deflate、headers、filter),添加 mime 类型级压缩规则,重启 apache 并关闭 php.ini 的 zlib.output_compression 才能生效。

直接说结论:XAMPP 默认不启用 Gzip 压缩,必须手动启用 mod_deflate 模块并配置规则,否则所有“压缩提速”的尝试都无效。
确认并启用 mod_deflate 模块
Apache 编译时已包含该模块,但 XAMPP 默认注释掉了加载语句——没这一步,后面全白配。
- 打开
C:\xampp\apache\conf\httpd.conf(macOS/Linux 对应路径为/Applications/XAMPP/xamppfiles/etc/httpd.conf) - 搜索
deflate_module,找到这行:#LoadModule deflate_module modules/mod_deflate.so - 删掉开头的
#,保存文件 - 必须重启 Apache(通过 XAMPP Control Panel 点击 Stop → Start),仅刷新页面无用
- 可访问
http://localhost/server-info(需先启用mod_info)验证模块是否在 “Loaded Modules” 列表中
在 httpd.conf 中添加压缩规则(别用 .htaccess)
.htaccess 在 XAMPP 本地开发中极易失效:一是默认 AllowOverride None,二是规则执行有性能开销。主配置更稳、更可靠。
- 在
httpd.conf文件末尾追加以下内容(注意不是替换,是追加):
<ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/x-javascript application/json application/xml SetOutputFilter DEFLATE </ifmodule>
说明:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
AddOutputFilterByType已被标记为过时,但 XAMPP 自带的 Apache 2.4.x 完全兼容;若你升级到 Apache 2.5+,改用AddOutputFilter DEFLATE+AddType组合 - 不要漏掉
application/json和text/plain,API 响应和日志类文本也值得压缩 - 避免写成
AddOutputFilter DEFLATE html css js—— 这种基于扩展名的写法不可靠,Apache 实际按 MIME 类型判断
验证是否生效及常见失败原因
浏览器开发者工具 Network 面板看到响应头含 Content-Encoding: gzip 才算成功。没看到?优先排查这几个点:
-
Apache 未重启:修改httpd.conf后必须完整重启,热重载或仅刷新页面无效 -
PHP 输出已压缩:如果php.ini中启用了zlib.output_compression = On,会与 Apache 的mod_deflate冲突,导致压缩失败或报错;应设为Off并重启 Apache -
MIME 类型不匹配:比如你只配了text/css,但实际返回的 CSS 被识别为application/ecmascript(某些构建工具会这样),就会跳过压缩;建议加上application/javascript和text/javascript -
浏览器缓存了未压缩版本:强制刷新(Ctrl+F5)或清空缓存再测,否则看到的仍是旧响应头
额外注意:mod_headers 和 mod_filter 不是可选,而是关键依赖
某些 XAMPP 版本(尤其较新或精简版)可能连 mod_headers 和 mod_filter 都未启用,而 mod_deflate 在部分配置下会依赖它们——尤其是用到 Header append Vary 或复杂条件判断时。
- 检查
httpd.conf中这三行是否都已取消注释:
LoadModule headers_module modules/mod_headers.so LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so
缺一不可。否则 Apache 可能启动失败,或压缩逻辑静默失效(无报错但不工作)。
最常被忽略的是 mod_filter:它负责过滤输出流,SetOutputFilter DEFLATE 实际依赖它运作。不加载,SetOutputFilter 就是摆设。










