.jgz と .js.gz と Apache の設定
こぶたのラッパの「世界の片隅で.jgzと言ってみる」
odz bufferの「Apache で gzip 圧縮されたファイルを返す」「Safari と gzip 圧縮 JavaScript」
1.mod_rewrite で .js -> .js.gz にした時、Apache の設定(.htaccess では無いデフォルトの設定)によっては、
Content-Type: application/x-gzip
になってしまって、どのブラウザでも上手く行かない場合がある。
設定方法を勉強しなくっちゃ。
ちなみに、うちのサーバーの場合、Apache 2.0.52 (×)、Apache 1.3.34(○)
2..jgz の場合は、Apache の設定によらず、
Content-Type: text/javascript
Content-Encoding: gzip
を返して、上手く行く。
これは新たに.jgz に対して AddType と AddEncoding するから、当たり前っちゃ当たり前?
ちなみに、Apache 2.0.52(○)、Apache 1.3.34(○)
3.1.2.の場合共に、2.のようにレスポンスした場合、Safari 2.0.4 419.3 では、上手く機能しているようである。
とりあえず、今のところは、
1.がOKのサーバーには .js.gz 用の .htaccess、NGの場合は、.jgz 用の .htaccess で対応しています。
解決方法を見つけなくっちゃ。
っていうか誰か教えて。
と、思ったら、
mod_mimeは黒魔術のような気がする に良さそうなのがありました。
ForceType を使う方法だそうで。
ForceType text/javascript
AddEncoding x-gzip .gz
ってことですかね?
明日試してみましょう。
で、試してみたら、
やったぁ~!
出来ました。
JavaScirpt 用のディレクトリで、.htaccess は以下です。
RewriteEngine onこれで、お世話になった .jgz は引退することになりました(^^
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME} !\.gz$
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz
ForceType text/javascript
AddEncoding x-gzip .gz