Apache で gzip 圧縮されたファイルを返す

もしかして、Safari って Content-type: application/x-javascript 、 Content-Encoding: gzip にしておいても gzip 圧縮された JavaScriptソースを正しく扱えなかったりするんだろうか。そうでなければ普通に Content Negotiation でいいと思うのだが。こんなの

% cat index.html | grep prototype
<script type="text/javascript" src="prototype"></script>
% ls
index.html  prototype.js  prototype.js.gz

これで Content Negotiaion を有効にしておけば Accept-Encoding に gzip が含まれるときだけ gzip 圧縮された prototype.js.gz を、 含まれないときは prototype.js を返すようになる。
prototype.js に直接アクセスされたときも透過的に prototype.js.gz を返したければ mod_rewrite を使う。

RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME} !\.gz$
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz

mod_rewrite を有効にして、上記設定を httpd.conf なり .htaccess なりに書いておけば 別に JavaScript に限らず HTML だろうが CSS だろうが必要に応じて gzip 圧縮されたほうを返してくれる。
しかし、元記事は gzip 圧縮されたファイルを決めうちで指定しておいて Safari の場合と Accept-Encoding に gzip が無い場合は元ファイルを返す設定になっているけど、それって考え方が逆だよなあ。