Saturday, November 11, 2006

Apache2 でアクセス認証を設定したときのディレクトリインデックス表示の変化について

マイサーバに Apache2.0 をセットアップした。Ubuntsu の apt-get でパッケージをインストールしたら、デフォルトで

/~kazu/public_html/

へのアクセスができた。~kazu/public_html/ には DirectoryIndex ディレクティブに指定してある名前のファイルがないのでディレクトリ内がインデックス表示されるようになている。

このディレクトリには、private_html という名前の ~kazu/ へのシンボリックリンクがある。つまり、このリンクをたどれば自分のホームディレクトリへアクセスできるようになっている。

自分のホームは非公開にしたいので、auth_digest モジュールを Apatche に追加し、~kazu/ へ .htaccess ファイルも設定して private_html にアクセスしたときは Digest 認証がかかるようにした。ちなみに以前は Base 認証だったので多少セキュリティレベルが上がっている。

ここでタイトルの件が起こった。private_html に Digest 認証をかけたら public_html/ でのインデックス表示に private_html が表示されなくなったのだ。.htaccess をはずしたり、空の .htaccess をおいたりした場合は、問題なく表示される。

以前、Apache1.3 系列を使っていて、そこで Base 認証をかけていたときは、普通に private_html のリンクがインデックス表示されていたのだが。。。

Apache2 の新機能で認証がかかっているリンク先へのシンボリックリンクはインデックス表示されないようになっているのだろうか?それとも単なるバグなのか?

いったん、その認証がかかったリンク先にアクセスし、また戻ってくると、今度はそのリンクがインデックスに表示されるようになった。。。

No comments: