ApacheのProxyPassディレクティブで正規表現

Apacheのmod_proxyで使えるProxyPassってディレクティブがあります。

http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html


詳しい説明は、面倒くさいので省略しますが、リバースプロキシとして利用するときに、

ProxyPass /app http://192.168.1.100:3000


みたいな感じで、"/app"以下のアクセスは、全てバックエンドの"http://192.168.1.100:3000"に丸投げ、みたいな書き方をするのですが、このディレクティブで指定できるURLに今まで正規表現が使えなかったのですよorz


ところが、2〜3ヶ月前にリリースされたApache2.2の最新版(2.2.6)では、ProxyPassMatchディレクティブが新しく追加されていて正規表現が使えるようになりました!(^^)/

  *) mod_proxy: Added ProxyPassMatch directive, which is similar
     to ProxyPass but takes a regex local path prefix. [Jim Jagielski]

http://www.apache.org/dist/httpd/CHANGES_2.2.6


下のは一例ですが、以下のような感じで正規表現が使えます。

ProxyPassMatch /(app|test)/(.*) http://192.168.1.100:3000/$1/$2