圧縮転送をtext/htmlに限定する
.htaccessを使って簡単に圧縮転送の対象を限定できました。
SetEnv gzip-only-text/html 1
上のように記述するとmod_deflateの方でこの変数を参照してくれて、
html以外のファイルは圧縮されなくなるようです。
Apacheは全然分からないのでこんな書き方になってますが、
もうちょっと格好いい書き方がありそうですね。
前に書いた夢の音楽館様から借りている
file.nijinone.jp上に置いたzipファイルがgzipで更に圧縮される問題はこれで解決しました。
更に、ファイル転送時にファイルサイズ不明と表示される現象も起こらなくなりました。
これはあくまで推測ですが、圧縮後のサイズが一定値を超えるとバッファから溢れて、
Content-Lengthが確定する前にストリーム応答で転送が開始されてしまうんじゃないかと思います。
この推測が当たってるとすると、大体のレンタルサーバーではその挙動を見る限り、重いファイルは圧縮しない設定になってる?
どうなんでしょう。
それにしてもダメもとで試した.htaccessが機能したのは驚きました。
というか大丈夫なのかこれは。
利用規約には特に何も書かれてないしサーバーの設定でも禁止されてないのはOKってこと...なのかな!