83 votos

¿Cómo puedo prevenir el apache de servir a la .directorio de git?

He comenzado a usar git para la implementación de sitios web para las pruebas. ¿Cómo puedo prevenir el apache de servir a la .git contenido del directorio?

He intentado

<Directorymatch "^/.*/\.git/">
Order deny,allow
Deny from all
</Directorymatch>

sin ningún éxito.

Sé que se puede crear una .htaccess en cada uno .directorio de git y denegar el acceso, pero yo quería algo que podría poner en el archivo de configuración principal que hace de este mundial a través de todos los sitios web.

147voto

Maslow Puntos 7268

Esto tiene el mismo efecto como muchas de las otras respuestas, pero es mucho más sencillo:

RedirectMatch 404 /\.git

Esto puede ir en .htaccess o la configuración de su servidor de archivos. Oculta cualquier archivo o directorio cuyo nombre empieza con .git (por ejemplo, un .git directorio o .gitignore archivo, devolviendo un mensaje de error 404. Por lo que no sólo el contenido de su repositorio Git oculto, su existencia está oculto.

14voto

Kyle Sloan Puntos 131

Si usted no utiliza .archivos htaccess sino que desea utilizar /etc/apache2/httpd.conf (o lo que sea de su servidor maestro conf archivo) para ocultar tanto .git y directorios .gitignore archivos, puede usar las siguientes. He encontrado la respuesta por encima de maestro conf configuración de no ocultar el archivo gitignore.

# do not allow .git version control files to be issued
<Directorymatch "^/.*/\.git+/">
  Order deny,allow
  Deny from all
</Directorymatch>
<Files ~ "^\.git">
    Order allow,deny
    Deny from all 
</Files>

12voto

danorton Puntos 449

Si estás en un servicio de hosting compartido y no tiene acceso a apache.conf, puede hacerlo en su .htaccess, como este:

RewriteEngine On
RewriteRule "^(.*/)?\.git/" - [F,L]

5voto

est Puntos 226

Para proteger tanto a el .directorio de git, así como otros archivos, tales como .gitignore y .gitmodules utilizando .htaccess, utilice:

RewriteEngine On
RewriteRule ^(.*/)?\.git+ - [F,L]
ErrorDocument 403 "Access Forbidden"

0voto

phatblat Puntos 2046

No es porque usted tiene 'svn' y no 'git' en la regla es?

<Directorymatch "^/.*/\.git/">
Order deny,allow
Deny from all
</Directorymatch>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: