Linuxディストリビューションのすべての「隠された」ファイルとディレクトリ(一般に「。」で始まるすべてのファイル)を単に拒否したい人のために、サーバーconfコンテキストに配置されたときにApache 2.4で機能するものを次に示します。
<FilesMatch "^\.(.*)$">
Require all denied
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Require all denied
</DirectoryMatch>
そして、ここに古いApache 2.2スタイルがあります(同じ正規表現、異なるauthディレクティブ):
<FilesMatch "^\.(.*)$">
Order deny,allow
Deny from all
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Order deny,allow
Deny from all
</DirectoryMatch>
そうすれば.git
、.svn
特に心配する必要はありません。それはまた.htaccess
、.htpasswd
本質的にのようなものと一致します。
個人的には、このようなリクエストに対して404ではなく403を発行するのが好きですが、次のように、認証拒否の代わりにRewriteRuleを簡単に使用できます。
<FilesMatch "^\.(.*)$">
RewriteRule "^(.*)$" - [R=404,L]
</FilesMatch>
<DirectoryMatch "/\.(.*)">
RewriteRule "^(.*)$" - [R=404,L]
</DirectoryMatch>