私の Web サーバーでは、いくつかの妥当な例外を除いてすべてのファイルをブロックしたいと考えています。次の Filesmatch ディレクティブが機能しています。
<FilesMatch "(?<!\.txt|\.htm|\.html|\.css|\.php|\.js|\.jpg|\.png|\.gif|\.ico|\.svg|\.eot|\.ttf|\.woff|\.otf)$">
Order Allow,Deny
Deny from All
</FilesMatch>
このFilesMatchは否定の後方参照正規表現を使用していることに注意してください。http://www.regular-expressions.info/lookaround.html指定された拡張子を持つファイルを除くすべてのファイルがブロックされます。
これにより、ディレクトリのデフォルト ドキュメント (index.html) に対しても 403 Forbidden が発生します。これは私が望んでいることではありません。誰か助けてもらえますか? デフォルト ドキュメントの検索はどのように機能しますか? 一部を除いてすべてをブロックする別の解決策はありますか? LogLevel デバッグで Apache2 のエラー ログを調べましたが、デフォルト ドキュメントを要求すると、「クライアントがサーバー構成によって拒否されました」というメッセージのみが表示されます。(index.html を明示的に要求すると機能します)
編集:Locationディレクティブを使用することで、この問題を解決できます。FilesMatchを使用してセキュリティを強化する 問題は解決しましたが、FilesMatch ではなぜ機能しないのかをまだ知りたいです。