Apache の設定ディレクティブに とか とかほしい
今開発中のウェブアプリは
- mod_perl なアプリは http://〜/site/app/foo
- 静的コンテンツは http://〜/site/bar
な URI 設計をしているので,httpd.conf は単純に
<Location "/site/app"> SetHandler perl-script PerlResponseHandler Foo::Bar </Location>
みたく書いていました。が,
- mod_perl なアプリは http://〜/site/foo
- 静的コンテンツは http://〜/site/res/bar
に変えてくださいというお達しが脳内からきたので,どのように実現しようかと思ったわけです。
プロダクションシステムでは mod_proxy でリバースプロキシ構成にするので悩むことはないのですが,とりあえずテストシステムでどうするか。できれば mod_rewrite を使わずにやりたい。
<Location "/site"> <Location !~ "/site/res"> SetHandler perl-script PerlResponseHandler Foo::Bar </Location> </Location>
こんな感じのことができれば幸せだったんですができなさそうです(そんな機能があったらいろいろな想定外の URI がマッチしてしまってマズーですし)。
結論を書くと,
<Location "/site"> SetHandler perl-script PerlResponseHandler Foo::Bar </Location> <Location "/site/res"> SetHandler None </Location>
none というキーワードがありました。万全な解答ではないですが,所詮テスト環境なのでこれでしのぐことにします。ちなみに,上記の Location の出現順序を変えるとうまくいきません(Location "/site/res" を先にもってくると,/site/res についても Handler = perl-script になってしまう)。