Para poder proteger una carpeta concreta de un servidor con un usuario y contraseña, hay varias maneras. Habitualmente la de manera más comoda y rápida es desde el panel de control de nuestro servidor, pero en caso de que no dispongamos de accesso a ese panel, sólo al FTP de esa carpeta vamos a ver como hacerlo con un poco de código. El servidor deberá soportar PHP.
Primero creamos un archivo llamado por ejemplo path.php y en el escribimos la siguiente linea de código:
<?php echo realpath('path.php'); ?>
Guardamos el archivo y lo subimos a la carpeta que queremos ocultar. Ahora en el explorador ponemos la dirección del archivo path, http:{nombredominio}/{carpeta}/path.php, donde el nombre del dominio será el dominio en cuestión y la carpeta el de la carpeta que queremos proteger, ambos sin corchetes. El resultado debemos guardarlo, porque es la ruta real en el servidor. Suele sar algo parecido a «/usr/home/{nombredominio}/web/{nombrecarpeta}/path.php» está ruta, sin «path.php», la necesitaremos después en otro paso.
Ahora vamos a creamos un archivo «.htaccess» y dentro ponemos el siguiente código:
AuthName "Página de administración protegida"
AuthType Basic
AuthUserFile "/usr/home/{nombredominio}/web/{nombrecarpeta}/.htpasswd"
Require valid-user
En la tercera linea hemos colocado la ruta que nos habia devuelto el archivo path, sin los corchetes. Este archivo lo guardamos y lo subimos a la carpeta.
Ahora crearemos el archivo «.htpasswd» y dentro pondremos el siguiente código:
{usuario}:{contraseña}
Donde cambiaremos el usuario y la contraseña, sin los corchetes, por lo que hayamos elegido. Para la contraseña vamos a utilizar una encriptación para que no sea facil de averiguar, para ello lo más fácil es ir a un generador de contraseñas, por ejemplo: https://hostingcanada.org/htpasswd-generator/ y seleccionaremos la opción Apache specific salted MD5. En la parte superior nos pondrá el usuario y contraseña, así que solo deberemos copiar lo que nos ponga allí en archivo «.htpasswd». Por ejemplo para usuario: pepe y contraseña: Password789 el código resultante sería: pepe:$apr1$83zbjdri$Qxq4PtN2vFik/skFQYtiZ0
Ahora si intentamos acceder a la carpeta a traves del explorador nos preguntará el usuario y contraseña no encriptada, es decir Password789.
Recordar eliminar el archivo path.php, que es sólo para que consigamos la ruta y ya lo tenemos.