31 October '2003 - 16:47 | 雑記 apache
たとえば以下の構成で、index.htm にだけ認証を要求したいとする。 <%= pre '/index.htm
/foo/index.html
/bar/index.html
' %>
全部同じファイル名にしてルートのだけ認証を要求するって方法もあるのかも知れないけれど、よく分からなかったので、とりあえず、違う名前にした。
これで、<%= pre '
<FilesMatch "index.htm$">
require valid-user
</FilesMatch>
' %>
って書けば目的は達成できる。と思ったらできなかった
なんと、こう書くと、apache は WWW-Authenticate を返さなくなっちゃうのだ。うーむ。
ためしに、<%= pre '
<FilesMatch "index.*$">
require valid-user
</FilesMatch>
' %>
って書くと、ちゃんと WWW-Authenticate を返してくれるんだけれど、これだと、その下のフォルダのファイルにも認証が必要になっちゃう。
いろいろ試行錯誤した結果、<%= pre '
<FilesMatch "index.*[^l]$">
require valid-user
</FilesMatch>
' %>
だと期待通り動いてくれることが分かった。なんだそれ。どう見てもバグだよなあ。