LinkSwitch

アイアムビリーバー

ギター練習とDTPとウェブ解析

AddOutputFilterByTypeがつかえない無料サーバーではgzip圧縮はできないのだ

195 views

.htaccessを利用したgzip圧縮でワードプレスにサーバーエラーが出たら、何より先にサーバーの仕様を確認しましょう。Pluginを外しただけではエラーは解消できません。

設定が.htaccsessに反映されるプラグインがサーバーエラーの原因

PageSpeed InsightsGTmetrixでのスコアをもっとあげたくてCSSやJSを圧縮したり移動したりできるプラグインを数種類試していたのですが、gzip圧縮のボタンにチェックを入れるとサーバーエラーとなり、.htaccessの記述を削除して保存し直すということを数十回は繰り返していました。なんでなんだ?プラグインでやるからダメなのか?と直に記述してみたり。

どうも変だよね?とやっとググるという動作をしてみて肩を落としました。

ディレクティブの制限について

ブラウザ等のクライアントソフトやサーバーにおいて一部の挙動を変更する下記設定(ディレクティブ)の利用を制限しています。

https://www.webcrow.jp/support/man/homepage_htaccess.php

ディレクティブの制限について

ブラウザ等のクライアントソフトやサーバーにおいて一部の挙動を変更する下記設定(ディレクティブ)の利用を制限しています。

https://www.webcrow.jp/support/man/homepage_htaccess.php
  • SetHandler
  • AddHandler
  • AddType
  • DefaultType
  • ForceType
  • AddInputFilter
  • AddOutputFilter
  • AddOutputFilterByType
  • SetOutputFilter
  • SetInputFilter

AddOutputFilterByTypeってみたことあるな!「wordpress .htaccess gzip」あたりでググると.htaccessの記述について解説している記事をみることができます。

Apache モジュール mod_deflate サーバからの出力を、ネットワークを 通してクライアントに送る前に圧縮することを可能にします。

http://www.apache.org/

AddOutputFilterByType DEFLATE text/plain このDEFLATEってそういうことか!

プラグインで設定すると.htaccessに記述される仕組みなのだ

AddOutputFilterByType でApache モジュール mod_deflateで圧縮するコンテンツのMIMEタイプを指定する。(MIMEタイプは、「タイプ名/サブタイプ名」で表記される拡張子みたいな概念)text/plainを圧縮するってことだ。

何も考えないでプラグインを入れまくってトラブルになる理由が少しわかった気がします。実験するサーバー環境は絶対に必要ですね。これがメインのサイトだったり、誰かに頼まれての作業だったら大変なことになッちゃう。

自分の利用しているサーバー環境を把握していなかったのも時間をロスした大きな原因。こういう仕事じゃなくて本当によかった。