8

複数のチュートリアルのすべての手順に従って、Apache で mod_deflate を有効にしましたが、(PHP スクリプトを介して) json の要求をローカル Web サーバーに発行しても、(Fiddler で) 圧縮が表示されません。私のブラウザーから localhost への圧縮は必要ありませんが、私のマシンは低速の VPN 経由で定期的に公開されるため、圧縮を使用したいと考えています。

httpd.conf から:

LoadModule deflate_module modules/mod_deflate.so(コメントアウトしていません)

mod_deflate.so は Apache2/modules にあります

PHP スクリプトを実行すると、すぐに次のヘッダーが設定されます。header('Content-Type: application/json');

application/jsonApache2/conf/mime.types に存在

これは、圧縮する必要がある MIME タイプに関する httpd.conf の関連セクションです。

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 に答える