Webサーバーに公的にアクセス可能なファイルがあります。AutoIndexing(Options + Indexes)を有効にしたいのですが、これらのリストを表示するにはパスワードが必要です。Authの設定に問題はありませんが、パブリックファイルとDirectoryIndexファイルには問題があり、誰かがディレクトリを要求し、DirectoryIndexファイルがある場合は、このためのパスワードを入力する必要はありません。セキュリティ上の理由から、AutoIndexingのみがパスワードを要求する必要があります。
これが私が思いついたものです:
Options +Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.php -f
RewriteRule ^.*$ %{REQUEST_URI}index.php [R,NE,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.html -f
RewriteRule ^.*$ %{REQUEST_URI}index.html [R,NE,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.htm -f
RewriteRule ^.*$ %{REQUEST_URI}index.htm [R,NE,L]
<FilesMatch "^$">
AuthName "My Auth Name"
AuthType Basic
AuthUserFile /path/to/my/.htpasswd
Require valid-user
</FilesMatch>
FilesMatchビットは正常に機能します。ディレクトリの要求はすべてログインするように求められますが、通常のファイルは通過します。これは簡単なことです。難しいのは、ログインせずにDirectoryIndexesをレンダリングすることです。上部の書き換えは、認証を要求する前にリクエストをリダイレクトしようとして失敗したことですが、サイコロはありません。最初に認証を要求します。何。
私はこれについて約6時間の調査を行いましたが、この時点で私はあきらめようとしています。どんな助けでもいただければ幸いです。
編集:これはディレクトリ構造の例です。
/images/blah.jpg <- does not require a password
/images/ <- requires a password to view listing
/index.html <- does not require a password
/ <- does not require a password because a DirectoryIndex file exists (index.html)