Para aquellos que buscan simplemente negar todos los archivos y directorios "ocultos" en una distribución de Linux (generalmente todos los archivos que comienzan con un "."), Esto es lo que funciona en Apache 2.4 cuando se coloca en el contexto de configuración del servidor:
<FilesMatch "^\.(.*)$">
Require all denied
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Require all denied
</DirectoryMatch>
Y aquí está el estilo antiguo de Apache 2.2 (misma expresión regular, solo diferentes directivas de autenticación):
<FilesMatch "^\.(.*)$">
Order deny,allow
Deny from all
</FilesMatch>
<DirectoryMatch "/\.(.*)">
Order deny,allow
Deny from all
</DirectoryMatch>
Entonces no tienes que preocuparte .git
ni .svn
específicamente. Eso también coincidiría con cosas como .htaccess
e .htpasswd
inherentemente.
Personalmente, me gusta emitir 403 para tales solicitudes en lugar de 404, pero podría usar fácilmente una RewriteRule en lugar de la denegación de autenticación, de esta manera:
<FilesMatch "^\.(.*)$">
RewriteRule "^(.*)$" - [R=404,L]
</FilesMatch>
<DirectoryMatch "/\.(.*)">
RewriteRule "^(.*)$" - [R=404,L]
</DirectoryMatch>