apache .htaccess

apache - .htaccess/.htpasswd 500 Error interno del servidor



(4)

El problema más probable es esta línea:

AuthUserFile /.htpasswd

Esta línea debe proporcionar una ruta completa del sistema de archivos al archivo de contraseña, por ejemplo

AuthUserFile /var/www/.htpasswd

Para descubrir su ruta del sistema de archivos, puede crear un documento PHP que contenga

echo $_SERVER[''DOCUMENT_ROOT''];

Estoy trabajando en bloquear una carpeta con .htaccess, que nunca he usado antes, y estoy teniendo algunos problemas. Esto es lo que tengo

.htaccess (ubicado en la carpeta que quiero bloquear):

AuthName "Username and password required" AuthUserFile /.htpasswd Require valid-user AuthType Basic

.htpasswd (ubicado en la raíz, la contraseña está encriptada en el archivo real):

tim:blah

Recibo 500 errores del Servidor interno con esto y no puedo entender por qué.


Los permisos pueden causar este problema también.

Asegúrese de que .htpasswd sea ​​legible por el usuario del servidor web.

Por ejemplo, si usa nginx, compruebe nginx.conf para averiguar cuál es el usuario del servidor. Si utiliza Apache, puede encontrarlo de esta manera , etc.

Luego configure los propietarios correctos y lea los permisos para .htpasswd


Si nada ayudó y estás usando PHP puedes hacerlo funcionar al poner esto en tu index.php (en la parte superior):

if (isset($_SERVER[''PHP_AUTH_USER'']) && isset($_SERVER[''PHP_AUTH_PW''])) { if ($_SERVER[''PHP_AUTH_USER''] != ''user'' || $_SERVER[''PHP_AUTH_PW''] != ''pass'') { header(''WWW-Authenticate: Basic realm="Protected area"''); header(''HTTP/1.0 401 Unauthorized''); die(''Login failed!''); } }


También agregaría que algunos en algunos servidores web, el archivo .htpasswd no funcionará si se coloca en un área de acceso público. Una instalación reciente que hice confirmó esto. Como otros han señalado, es mejor colocar esto en la raíz del sitio.