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.txty/inscription/log.txt.Order Allow,Denyestá 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
.htaccessarchivo en la raíz de un servidor virtual (apache 2.4):Esto evita el acceso externo al
reminder.phpque se encuentra en un subdirectorio. Tengo un.htaccessarchivo 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
.htaccessarchivo, es decir , lo<Files ./inscription/log.txt>que está causando que falle. Sería más sencillo poner el.htaccessarchivo en el mismo directorio que, porlog.txtejemplo, en elinscriptiondirectorio 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.htaccessarchivo en sí es el " contenedor de directorio " (archivo de configuración por directorio).Redirect /inscription/log.txt access_denied.htmlEsto redirigirá al usuario aaccess_denied.htmlsi el usuario accede alinscription/log.txtdirectorio de inscripción.