Pregunta

He protegido con contraseña todo mi sitio web usando .htaccess pero me gustaría exponer uno de los subdirectorios para que pueda verse sin contraseña.

¿Cómo puedo desactivar la protección de contraseña de htaccess para un subdirectorio? Específicamente, cuál es la sintaxis .htaccess .

Aquí está mi archivo .htaccess que se coloca en la raíz de mi ftp.

AuthName "Site Administratrion"
AuthUserFile /dir/.htpasswd
AuthGroupFile /dev/null

AuthName secure
AuthType Basic
require user username1
order allow,deny
allow from all
¿Fue útil?

Solución

Necesita crear un nuevo archivo .htaccess en el directorio requerido e incluir la directiva Satisfy any de esta manera, hasta Apache 2.3:

# allows any user to see this directory
Satisfy Any

La sintaxis cambió en Apache 2.4, esto tiene el mismo efecto:

Require all granted

Otros consejos

Agregando a la respuesta de RageZ, usé esto en las Directivas del servidor:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

Impresionante. Gracias RageZ!

Simplemente cree un nuevo .htaccess en el subdirectorio deseado con esta directiva:

Permitir de todos

Puede restringir su IP solo con:

Permitir desde x.x.x.x

Ver: http://httpd.apache.org/docs/current/ mod / mod_access_compat.html

Debe agregar otro archivo .htaccess al subdirectorio que anula la autenticación. .htaccess cae en cascada hacia arriba, es decir, se verá en la carpeta actual, luego subirá un nivel y así sucesivamente.

Aquí hay una manera de permitir el subdirectorio " foo " a través de la autenticación básica desde el archivo principal .htaccess en un sitio:

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

Nota: Esto funciona en Apache 2.4. No he confirmado para versiones anteriores.

Si desea evitar que cualquier directoty específico provenga de la autenticación htaccess, puede usar el siguiente código en su archivo htaccess en la parte superior.

AuthType Basic  AuthName " Ingresar Pase "  AuthUserFile /home/public_html/.htpasswd / * RUTA A SU ARCHIVO .htpasswd * /  Requerir usuario válido  SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " permitir  Orden permitir, negar  Permitir desde env = allow

También si desea evitar múltiples directorios, entonces agregar

SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " permitir

tantas veces como tantos directorios, desea eliminar de la prevención htaccess.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top