Generalidades
Este artículo explica cómo proteger tu sitio web con contraseña utilizando un archivo .htaccess .
Usar el panel para proteger a tu sitio con contraseña
Una opción alternativa es utilizar la herramienta del panel en la página Htaccess/WebDAV. Sin embargo, por favor ten en cuenta que si necesitas acceso para editar manualmente tus archivos .htaccess y .htpasswd en el futuro, debes utilizar las instrucciones de este artículo, ya que la opción del panel elimina el acceso a estos archivos.
Requisitos previos
Este artículo asume que tu has creado un usuario de Shell y puedes iniciar sesión en tu servidor a través de SSH.
Cómo proteger tu sitio con contraseña
Los siguientes pasos crean un archivo .htpasswd y .htaccess para proteger un sitio web completo, un subdirectorio específico o archivos específicos.
Crear el archivo .htpasswd
- Inicia sesión en tu servidor a través de SSH.
- Navega hasta el directorio que desea proteger con contraseña.
Esto podría ser example.com para todo tu sitio web o example.com/subdir para un subdirectorio.
- Corre pwd para confirmar la ruta completa del archivo a este directorio. Anótalo.
[server]$ pwd /home/username/example.com
-
Crea un archivo .htpasswd corriendo el siguiente comando.
Cambia la ruta del directorio y user1 por el usuario de inicio de sesión que deseas crear.
[server]$ htpasswd -c /home/username/example.com/.htpasswd user1
- Cuando se te pida, ingresa una contraseña para el nuevo usuario. El código en tu archivo .htpasswd muestra la contraseña cifrada de la siguiente manera:
user1:$apr1$bkS4zPQl$SyGLA9oP75L5uM5GHpe9A2
- Cuando se te pida, ingresa una contraseña para el nuevo usuario. El código en tu archivo .htpasswd muestra la contraseña cifrada de la siguiente manera:
-
Corre el comando nuevamente (sin la opción -c) para cualquier otro usuario al que deseas permitir acceso a tu directorio.
-
Configura los permisos a 644.
[server]$ chmod 644 .htpasswd
Crear el archivo .htaccess
En el mismo directorio, crea un archivo .htaccess y agrega uno de los siguientes ejemplos de código según las necesidades de tu sitio:
Proteger un sitio web completo (o subdirectorio)
-
Esta contraseña de ejemplo protege un sitio web completo o un subdirectorio, dependiendo de la ruta del archivo.
#Protect Directory AuthName "Dialog prompt" AuthType Basic AuthUserFile /home/username/example.com/.htpasswd Require valid-user
Proteger un solo archivo
-
Esta contraseña de ejemplo protege un solo archivo llamado admin.php:
#Protect single file <Files admin.php> AuthName "Dialog prompt" AuthType Basic AuthUserFile /home/username/example.com/.htpasswd Require valid-user </Files>
Proteger múltiples archivos
-
Este ejemplo protege varios archivos como admin.php y staff.php.
#Protect multiple files <FilesMatch "^(admin|staff).php$"> AuthName "Dialog prompt" AuthType Basic AuthUserFile /home/username/example.com/.htpasswd Require valid-user </FilesMatch>
Proteger un subdirectorio de WordPress
-
Debido a la forma en que WordPress enruta todas las solicitudes de página, intentar acceder a un subdirectorio protegido con contraseña arrojará un error 404 Not Found. Para resolver esto, debes agregar una línea adicional al archivo .htaccess para hacer referencia a ErrorDocument.
Este ejemplo protege un subdirectorio llamado members.
ErrorDocument 401 default #Protect Directory AuthName "Dialog prompt" AuthType Basic AuthUserFile /home/username/example.com/members/.htpasswd Require valid-user
Probar tu sitio
Visita tu sitio web y verifica si la solicitud de contraseña nueva aparece como está configurada.
Forzar SSL (HTTPS) en el mensaje de inicio de sesión
Si tu sitio no utiliza un certificado SSL, el mensaje de inicio de sesión que ves no está cifrado. Esto significa que tu contraseña se enviará como texto sin formato a través de http. Para cifrar este inicio de sesión, debes agregar un certificado SSL en tu dominio.
Si tu sitio utiliza un certificado SSL, pero no se redirecciona automáticamente a HTTPS, contacta a soporte para obtener ayuda.