8

我已经按照多个教程中的所有步骤在 Apache 中启用 mod_deflate,但是当我向本地 Web 服务器发出 json 请求(通过 PHP 脚本)时,我仍然没有看到压缩(在 Fiddler 中)。我的浏览器不需要压缩到本地主机,但我的机器会定期通过慢速 VPN 暴露,所以我想使用它。

来自 httpd.conf:

LoadModule deflate_module modules/mod_deflate.so(未注释掉)

mod_deflate.so 存在于 Apache2/modules

PHP 脚本在运行时立即设置以下标头:header('Content-Type: application/json');

application/json存在于 Apache2/conf/mime.types

这是 httpd.conf 中关于应该压缩的 mime 类型的相关部分:

Alias /mapguide "C:/Program Files/OSGeo/MapGuide/Web/www/"
<Directory "C:/Program Files/OSGeo/MapGuide/Web/www/">
  AllowOverride All
  Options All -Indexes
  Order allow,deny
  Allow from all

...

  # Content compression
  AddType text/javascript js jgz
  AddOutputFilterByType DEFLATE text/javascript application/json text/html

  RewriteEngine on
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</Directory>

当我向服务器发出请求时,请求标头包括Accept-Encoding: gzip, deflate,但响应未压缩返回。每次 .conf 更改后,我都重新启动了 Apache。

任何建议都非常欢迎!

4

1 回答 1

11

在这里疯狂猜测......也许在配置中添加一个新行:

AddOutputFilter DEFLATE php

或添加

application/x-httpd-php

到现有 AddOutputFilterByType 列表的末尾。

于 2012-01-25T20:30:03.677 回答