2010-02-02 12 views
18

Puedo deshabilitar el acceso a un archivo con .htaccess, pero no sé cómo no permitir que se vean varios archivos (directamente, no de los incluidos).htaccess denegar el acceso a archivos específicos? más de un

Ellos son .php así que puedo 't desactivar un tipo de archivo (como los únicos tutoriales en línea decir ..)

<FILES ... ? 

</FILES> 

O algo .. Por ejemplo 'home.php, archivo.php, prueba.php'¿Cómo no permitir el acceso a los tres archivos con esa etiqueta? o similar, ayuda por favor!

Respuesta

24

Si desea excluir archivos basado en expresiones regulares, podría utilizar FilesMatch en lugar de archivos, por ejemplo:

<FilesMatch ^((home|test|file)\.php$|mysecretfolder|asecretpicture\.jpe?g)$> 
... 
</FilesMatch> 
+0

Perfecto, me encanta la tubería para cada nombre de archivo, justo lo que quería. Gracias. –

+0

Advertencia: utilice el inicio y el final de la cadena, si desea excluir /test.php, pero no /public/test.php o /test.php.bak – Residuum

+1

Eso es lo más útil que he visto en toda la semana. De acuerdo, son más de las 2 pm un lunes, pero aún así. – Imperative

11

Parece que hay que excluir esos archivos uno por uno:

<files home.php> 
Deny/Allow/Whatever 
</files> 
<files file.php> 
... 

Usted puede utilizar *.gif en <files> o something*, sino como home.php, archivo.php y prueba.php no puede ser realmente agrupado con un "*", esta es probablemente la única forma de hacerlo.

0

Dado que Apache 2,4

<FilesMatch "\.htaccess|config\.php"> 

    Require all denied 

</FilesMatch> 

en lugar de

<FilesMatch "\.htaccess|config\.php"> 

    Order allow,deny 
    Deny from all 

</FilesMatch> 
Cuestiones relacionadas