やまぐち@あわぐもです。

Rubyの話から外れてしまいますが...

> Content-Type: text/plain
> Content-Encoding: x-gzip
> 
> と答えているので、IE が混乱してるんじゃないかという気がします。

混乱ではなく、仕様通りの動作かと思いますが。

#それが困ったことになるということは変わりませんが。

Content-Encoding: x-gzipなのでgzipでエンコードされていると看做し、デコー
ドを行います。これ自体は仕様として期待されている事です。そのとき、.gzも
外せばいいと感じるかもしれませんが、そう決めつけるのも実際には難しいです。

今回の場合は、Apacheがデフォルトで.gzにContent-Encoding:x-gzipを付けてる
のでそれでいいですが、必ずしも拡張子で関連付けされるわけではありませんか
ら、ユーザエージェントは拡張子を取っていいかどうかの判断はできません。や
るとしたら、Content-Encoding:x-gzipでファイル名の末尾が.gzの場合は.gzを
外す、みたいなハードコーディングを行う事になるでしょう。

IEにも変な所もありますが、Apacheのデフォルト設定にも問題があ
るとも言えますし、サーバの設定が悪いとも言えます。一番いいのは、Apacheの
conf/httpd.confの

AddEncoding x-gzip gz tgz

をコメントアウトする。あるいは.htaccessで上書きするかでしょう。とにかく、
ダウンロードさせるものにはContent-Encodingを付けないようにするべきだと思
います。これが付いてもあまり嬉しいことがないですから(付けてもらいたいと
きに個別に指定するのが吉)。

あとは参考URL 2.にも書いてありますが、IEのオプションの「HTTP/1.1を使う」
のチェックを外す事がクライアント側でできることでしょう(現実的な回避策で
はあるが、本質的ではないです)。

#他人のバグを疑う前に自分でちゃんと調べるのが基本です。

参考URL:(GoogleでContent-Encodingで検索した結果の一部)
1. http://japache.infoscience.co.jp/japanese/manual/content-negotiation.html
 Apacheのマニュアルの邦訳
2. http://www.oersted.co.jp/~emk/dhtml/nocompgif.html
 無圧縮GIFの作成方法(特に、「gzipで圧縮」の部分)

-- 
山口佳成【をゐなり】YAMAGUCHI,Yoshiaki [Woinary]
yoshiaki / awagumo.org