目次
出力データの圧縮とは
ウェブサーバの出力データをGZIPで圧縮することによって、データの転送速度を向上させウェブサイトを速く表示させることができます。
出力データを圧縮する設定
.htaccessファイルに次のように記述して、サーバに設置します。
AddOutputFilterByType DEFLATE application/font-woff AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom+xml AddOutputFilterByType DEFLATE image/tiff AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/richtext
- AddOutputFilterByType DEFLATE <MIMEタイプ>
- 指定したMIMEタイプの出力にDEFLATEフィルタをかける設定です。DEFLATEフィルタはデータをGZIP圧縮するフィルタです。
- すでに圧縮済みのファイルにDEFLATEフィルタをかけるとパフォーマンスが低下します。画像、動画、音声、ZIP、PDFファイル等にはDEFLATEフィルタをかけないでください。
- 当サービスでは拡張子が .js のファイルのMIMEタイプは application/javascript になります。application/x-javascript や text/javascript に対してフィルタをかける必要はありません。
- 当サービスでは拡張子が .xml .xsl のファイルのMIMEタイプは application/xml になります。text/xml に対してフィルタをかける必要はありません。
- 当サービスでは拡張子が .atom のファイルのMIMEタイプは application/atom+xml になります。application/atom_xml ではありませんのでご注意ください。
よくある間違い
SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html AddOutputFilterByType DEFLATE application/font-woff AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom+xml AddOutputFilterByType DEFLATE image/tiff AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/richtext AddOutputFilterByType DEFLATE application/x-httpd-php
- SetOutputFilter DEFLATE
- これは全ての出力データを圧縮する設定です。圧縮すべきでない出力も圧縮されてしまいますので、このような設定はしないでください。DEFLATEフィルタを有効化するための設定と説明されることがありますが誤りです。
- SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
- これは拡張子が .gif .jpg .jpeg .png ならば圧縮しないという設定です。上の SetOutputFilter DEFLATE と合わせて使用するならば間違いとはいえませんが、画像以外の圧縮するべきでないファイルが指定されていないので不十分です。
- BrowserMatch …
- GZIP圧縮に対応していないウェブブラウザに配慮するための設定です。そのような古いウェブブラウザを使用している人はほとんどいません。
- AddOutputFilterByType DEFLATE application/x-httpd-php
- DEFLATEフィルタは出力データに対してかけます。PHPプログラムを実行した結果出力されるデータがHTMLならば、そのMIMEタイプは text/html です。application/x-httpd-php に対してフィルタをかける必要はありません。