rewriteによりCGIを実行する方法だとURLの?以下が取得できないようなので、他の方法を考えることに。r.cgiというファイル名にして/r.cgi/http://hoge.com/という風に指定し、PATH_INFOでデータを受け取る方法もあるけど、URLに.cgiというのが含まれてしまうし。できればURLはhttp://uttsu.com/r/というのにしたい。結局、Options +MultiViewsを指定してr.cgiが単にrというURLで指定されても実行されるようにした(MultiViewsを使わなくてもSetHandlerを使えばもっとスマートに実現できるようだけど、サーバーの設定のためか使えなかった)。
.htaccessの内容
<Files "r"> Options +MultiViews </Files>
この方法にも欠点があって、r.cgiをルートディレクトリに置いているので、ルート以下の全ディレクトリに対して.htaccessの内容が有効になってしまう。つまり、他にr.cgiというファイルを置いた場合、rだけでも動作してしまう。大きな問題ではないけれど。