Для тех, кто хочет просто запретить все «скрытые» файлы и каталоги в дистрибутиве 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>