Для тех, кто хочет просто запретить все «скрытые» файлы и каталоги в дистрибутиве Linux (как правило, все файлы, начинающиеся с «.»), Вот что работает на Apache 2.4, когда помещается в контекст conf сервера:
<FilesMatch "^\.(.*)$">
Require all denied
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Require all denied
</DirectoryMatch>
А вот более старый стиль Apache 2.2 (тот же regex, только разные директивы auth):
<FilesMatch "^\.(.*)$">
Order deny,allow
Deny from all
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Order deny,allow
Deny from all
</DirectoryMatch>
Тогда вам не нужно беспокоиться .git
или .svn
конкретно. Это также соответствует вещам, как .htaccess
и по .htpasswd
своей сути.
Лично мне нравится выдавать 403 для таких запросов вместо 404, но вы можете легко использовать RewriteRule вместо отказа в аутентификации, например так:
<FilesMatch "^\.(.*)$">
RewriteRule "^(.*)$" - [R=404,L]
</FilesMatch>
<DirectoryMatch "/\.(.*)">
RewriteRule "^(.*)$" - [R=404,L]
</DirectoryMatch>