2010-05-18 25 views

Respuesta

21
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

Loaded con algunas extensiones comunes, agregue más según lo necesite.

4
<FilesMatch "\.ext$"> 
    Deny from all 
</FilesMatch> 

Consulte la documentación de Apache en FilesMatch y Deny

EDITAR: Artefacto hace un good point, esto devolverá 403, no 404, si eso es importante para sus propósitos

11

Si realmente quieres un 404 (y no un 403), se puede usar mod_rewrite:

RewriteEngine on 
RewriteRule \.ext$ - [R=404] 
+0

lo siento - 403 es lo que debería utilizar. Edité la pregunta para decir 40x. – Stevko

+0

Tenga en cuenta que RFC 2616 permite una respuesta 404 cuando el acceso a un recurso está prohibido (ver sección 10.4.4). Entonces tu pregunta original era válida. – Artefacto

+2

También hay 'Redirect 404', ref: [Las solicitudes a .htaccess deben devolver 404 en lugar de 403] (http://stackoverflow.com/a/7945851/367456) y' RedirectMatch 404', ref: [Hacer .git directorio inaccesible de la web] (http://stackoverflow.com/a/17916515/367456) - solo se agrupa un poco aquí. – hakre

2

También puede denegar el acceso a las extensiones de archivo utilizando RedirectMatch Directiva:

RedirectMatch 403 ^/.+\.(php|html|gif)$ 

Esta voluntad devuelve un error prohibido 403 para los clientes si solicitan un uri que finalice con .php o .html o .gif. Puede agregar más extensiones al patrón usando una barra |.

0

Me gustan las respuestas de @Chris Lawlor's y @ starkeen y, dado que OP me preguntó acerca de "40x", voy a sugerir redireccionar a un error 404 ya que no revela el hecho de que los archivos existen.

Esto es lo que estoy usando actualmente en uno de mis proyectos:

# Hide files not concerning the user 
RedirectMatch 404 \.(htaccess|htpasswd|ini|log|sh|inc|bak|bkp|sql)$ 
Cuestiones relacionadas