Tengo el siguiente archivo .htaccess:
RewriteEngine On
RewriteBase /
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# Protect log.txt
<Files ./inscription/log.txt>
Order Allow,Deny
Deny from all
</Files>
# Disable directory browsing
Options All -Indexes
Estoy intentando prohibir que los visitantes accedan al siguiente archivo:
domain.com/inscription/log.txt
pero lo que tengo arriba no funciona: todavía puedo acceder al archivo desde el navegador de forma remota.
<Files>
directiva solo se aplica a ese directorio", no, no es así. Se aplica a ese directorio y a todos los subdirectorios debajo de él. Así<Files "log.txt">
que atrapará/log.txt
y/inscription/log.txt
.Order Allow,Deny
está obsoleta en 2.4?Fuerte coincidencia de patrones : este es el método que utilizo aquí en Perishable Press. Usando una fuerte coincidencia de patrones, esta técnica evita el acceso externo a cualquier archivo que contenga " .hta ", " .HTA " o cualquier combinación de los mismos que no distinga entre mayúsculas y minúsculas. A modo de ilustración, este código impedirá el acceso a través de cualquiera de las siguientes solicitudes:
..etc., etc. Claramente, este método es muy eficaz para proteger los archivos HTAccess de su sitio. Además, esta técnica también incluye la directiva fortalecedora " Satisfacer a todos ". Tenga en cuenta que este código debe colocarse en el archivo HTAccess raíz de su dominio:
fuente
<Files ~"^\..*">
.No creo que la respuesta aceptada actualmente sea correcta. Por ejemplo, tengo el siguiente
.htaccess
archivo en la raíz de un servidor virtual (apache 2.4):Esto evita el acceso externo al
reminder.php
que se encuentra en un subdirectorio. Tengo un.htaccess
archivo similar en mi servidor Apache 2.2 con el mismo efecto:No lo sé con certeza, pero sospecho que es el intento de definir el subdirectorio específicamente en el
.htaccess
archivo, es decir , lo<Files ./inscription/log.txt>
que está causando que falle. Sería más sencillo poner el.htaccess
archivo en el mismo directorio que, porlog.txt
ejemplo, en elinscription
directorio y funcionará allí.fuente
Coloque la siguiente línea en su archivo .htaccess y reemplace el nombre del archivo como desee
fuente
Bueno, podrías usar la
<Directory>
etiqueta, por ejemplo:No lo use
./
porque si solo lo usa/
busca en el directorio raíz de su sitio.Para obtener un ejemplo más detallado, visite http://httpd.apache.org/docs/2.2/sections.html
fuente
<Directory>
no se permite la entrada de un contenedor.htaccess
. En.htaccess
, el.htaccess
archivo en sí es el " contenedor de directorio " (archivo de configuración por directorio).Redirect /inscription/log.txt access_denied.html
Esto redirigirá al usuario aaccess_denied.html
si el usuario accede alinscription/log.txt
directorio de inscripción.