problema de la protección de un directorio utilizando .htaccess
Pregunta
He creado un .htaccess y .htpasswd archivos, y los almacena en la carpeta que desea proteger y cuando navegaba a esa carpeta, se me pidió para el nombre de usuario y passowrd (almacenada en el archivo .htpasswd) después de entrar el nombre de usuario y contraseña, me ha dado un error interno del servidor 500. He utilizado los archivos tanto localhost (ventanas) y en un servidor web (Linux supongo) ambos dieron el mismo resultado mencionado.
Este es mi archivo .htaccess:
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
Solución
dudo de que su archivo .htpasswd
es realmente situado en la raíz misma del sistema de archivos del servidor junto con /bin
, /usr
, /home
, y otros (en lugar de dentro de la parte del sistema de archivos servido para navegadores web).
Según la documentación Apache ( 1 , 2 ), AuthUserFile
espera una ruta de archivo (como si estuviera en ServerRoot, por lo general /usr/apache
o similares, y tratando de localizar el archivo de la cáscara de Unix). No puede ser un URL, absoluta o relativa. Corregir su ruta de archivo .htpasswd
en consecuencia.
Tenga en cuenta que si es posible, no se debe poner el archivo dentro de una carpeta .htpasswd
public_html
o htdocs
, ya que cualquier error de configuración no sólo podría permitir el acceso no autorizado a los archivos que desea proteger, sino también los nombres de usuario y contraseñas con algoritmo hash autorizados.
Otros consejos
utilizar una ruta de alojamiento absoluta, por ejemplo:
/home/content/14/5267714/html/.htpasswd