apacheのmod_rewriteでパラメータを元にrewriteする。

今日、CGIで、特定のパラメータを渡した時だけRailsに渡したいっていう要件が出てきて
書くのにちょっと迷ったのでメモ。


結論から言うとQUERY_STRINGを使う。
考えてみれば当たり前の話。
REQUEST_URIとかいくら条件に追加しても成功しないわけだ。


というわけで設定例

RewriteEngine On
RewriteCond %{REQUEST_URI} ^sample\.cgi
RewriteCond %{QUERY_STRING} rails_param=true
RewriteRule ^/(.*)$ balancer://mongrel%{REQUEST_URI} [P,QSA,L]

こうするとsample.cgiにアクセスした時、rails_paramパラメータにtrueがきた時、
mongrelのmod_proxy_balancerに飛んでくれる。