web-dev-qa-db-ja.com

ワードプレス REST API json - gzip圧縮を有効にする方法?

私は現在Wordpressのウェブサイトでgzip圧縮を有効にしようとしています。しかし、wordpress embed apiのjson出力は、私のhtaccess設定の影響を受けないようです。

どうぞ:

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE application/json

  # Remove browser bugs (only needed for really old browsers)
  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
</IfModule>

誰かが私の過ちがどこにあるか手がかりを持っていますか?ありがとうございます。

1
ChrisR34

私はあなたの正確な.htaccessディレクティブのセットを使ってjson gzip'ingを達成しました。私のファイルを23kから4kにしました。

それで、私は次の2つのうちの1つを仮定するでしょう:

  1. Your.htaccessはこれらのディレクティブの使用を許可されていないので、それらは無視されます。したがって、次のいずれかを実行する必要があります。 a) httpd.confまたは/etc/Apache/sites-available/site.confまたはhttpd-vhosts.confを編集します(使用しているシステムによって異なります)。そしてそこにgzipのものを追加してください。 b) 同じファイルを編集して、your.htaccessにこれらの設定を上書きする権限を与えます。 c) .htaccessが動作するように、実際にApacheを実行していることを確認してください。D
  2. Mod_deflateがロードされていることを確認し、ロードされていない場合は有効にします。繰り返しますが、Apacheを実行していないか、htttpd.conf(またはどこでも)のディレクティブがapplication/jsonをカバーしていないため、これは機能しない可能性があります。

これらの変更を行うための.confアクセス権がある場合は、.htaccessファイル内ではなくdeflateルールをそこに配置してください。そうすることで、サーバーはセットアップ時に学習し、すべてのファイルアクセスでは学習しません。 (少し)速度を上げます。

あなたが.confアクセスを持っていないなら、あなたはサーバーの人々やホスティング会社と話をしてあなたのウェブサイトにAddOutputFilterByType DEFLATE application/jsonを追加させる必要があります、おそらくあなたが上でした設定のすべてを考慮してください。

ボーナスとして、あなたが本当にもっと小さくしたいのであれば、Brotli圧縮は特にフォントを小さくするために作られており、すべてのファイルタイプで動作します。もしあなたがホストを使って作業しているならば、gzipと同様にこれが可能であるかどうか彼らに尋ねてください。そうすれば後方互換性があります。

1
Andrew Killen