いま PHP で、あるプログラムを作っているのだが、Safari でそのページを見ると、ブラウザで表示されずにダウンロードされてしまう現象に陥りハマった。拡張子は .php にしていたし、同一ディレクトリにある他の .php なプログラムは普通に動いていたので何が何やら。。。
謎だなぁと思って、curl コマンドで HTTP ヘッダを見てみた。
$ curl http://example.com/diet/index.php --head HTTP/1.1 200 OK Date: Sat, 20 Sep 2003 12:51:06 GMT Server: Apache/2.0.40 (Red Hat Linux) Accept-Ranges: bytes X-Powered-By: PHP/4.2.2 Content-Encoding: (with Content-Type: text/html; charset=EUC-JP
ここで見なれない Content-Encoding: (with というのを発見。
ソフトウェアをいじる話によると「mod_mime_magic がエスケープを含むテキストを与えられると " (with escape sequences)" というタイプを追加で返しているが、 これがapache の本体のほうでうまく扱えてないらしい。 多分バグだろう。」とのこと。
とりあえず不要そうなので、http.conf から mod_mime_magic を外して回避することにした。