.htaccess で有効なユーザー以外のディレクトリ参照を禁止するにはどうすればよいですか?

.htaccess で有効なユーザー以外のディレクトリ参照を禁止するにはどうすればよいですか?

HTTP 基本認証でログインしたユーザーにはディレクトリの参照を許可し、匿名ユーザーには許可しないようにしたいと思います。.htaccess を使用してこれを実現する方法はありますか?

答え1

RewriteEngine on
RewriteCond %{REMOTE_USER} =""
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule .? - [F,L]

index.foo使用するタイプと同じ数だけ連結する必要があります。

ここでは、「ログインしたユーザー」とは、HTTP BASIC 認証を使用してログインしたユーザーを意味するものと想定しています。カスタム認証メカニズムにログインしたユーザーを意味する場合は、書き換えマップをフックする必要がありますが、おそらく労力に見合うものではありません。その時点で、index.fooカスタム認証をチェックし、状況に応じてインデックスを送信するかどうかをすべてのディレクトリに配置します。

答え2

http://httpd.apache.org/docs/2.0/howto/htaccess.html

正確にその方法を説明します。Require パラメータに注目してください。

関連情報