En ocasiones podemos necesitar proteger una carpeta de nuestra web para solo permitir el acceso a su contenido a la gente que disponga de la contraseña. Las razones para necesitar este tipo de contraseñas pueden muy variadas.
En mi caso lo he llegado a utilizar para proteger un archivo, para probar una nueva instalación que no quiero que se muestre hasta que esté terminada, incluso para evitar que los rastreadores de los buscadores (google entre otros) encuentren el contenido antes de que esté finalizado. También podría usarse para crear un apartado privado para compartir documentos o incluso una forma de dar acceso a una parte de tu web solamente a aquellos que dispongan de la contraseña, una especie de servicio VIP creado de la forma más simple.
Para proteger una carpeta en nuestro blog, ya sea con wordpress o sin el, yo recomiendo usar uno de estos tres métodos:[unordered_list style=»star»]
- WebProtect. La mayoría de los servidores vienen con esta opción en sus paneles de control. El problema es que normalmente nos permiten proteger completamente todo el servidor, no una carpeta en concreto. Además, por mi experiencia, suelen ser realmente poco intuitivas de configurar. Y además es posible que el servidor directamente no tenga esta opción.
- Wordpress. Wordpress trae integrado un sistema para proteger con contraseña cualquier artículo o página del blog. Hay que hacerlo de forma individual para cada página o artículo. Útil pero puede que lo que queramos proteger sea una descarga de un archivo y no la página dónde lo promocionamos. O puede que no tengamos todavía el wordpress instalado cuando necesitemos usarlo. En cualquier caso es un sistema sencillo que conviene saber que está ahí para cuando nos haga falta. La opción aparece en el menu Publicar de la derecha cuando estamos editando un artículo o página, podéis ver en la imagen un detalle que aparece al pulsar en editar justo a la derecha de Visibilidad.
- .htaccess. El archivo .htaccess es un archivo oculto que podemos colocar en cualquier carpeta de nuestra web. Es un archivo de texto que tiene algunas configuraciones necesarias para el correcto funcionamiento de nuestra web. Se puede entender como la forma que tenemos de mandar instrucciones al servidor sin necesitar conectarnos a él. Hablaremos más adelante de todo lo que se puede hacer con el archivo .htaccess de nuestra web, pero hoy solo voy a explicar cómo usarlo para bloquear una carpeta de nuestro blog en Wordpress, o cualquier otra web que queramos. Esta guía está basada en este artículo en inglés.[/unordered_list]
[box type=»info»]Los pasos parecen algo complicados pero si los sigues con tranquilidad verás que no es nada complicado al final, y aprender a usar el archivo .htaccess es algo que recomiendo a todo el mundo que tenga una web. En cualquier caso siempre recomiendo hacer copia de seguridad de todos tus archivos antes de empezar por si acaso.[/box]
Protege una carpeta de tu web usando .HTACCESS
A.- Crear el archivo .htpasswd
1.- Necesitamos crear un archivo oculto que tendrá el usuario y el password que vamos a usar, y debe ser un archivo encriptado para que no pueda verlo nadie simplemente abriendo el archivo. No os preocupéis que es el paso más sencillo.
2.- Crearemos un archivo de texto vacio en nuestro ordenador. Renombraremos el archivo como .htpasswd (ojo, sin .txt al final, solamente .htpasswd).
3.- Entramos en este enlace: Alterlinks .htaccess password generator y ponemos el usuario y el password que queremos usar para proteger la carpeta.
4.- Copiamos el texto resultante que será algo así:
usuario:kcYriND57b.vI
5.- Pegamos ese texto en nuestro archivo .htpassword, que podremos editar con el notepad, aunque no tenga extensión txt.
6.- Guardamos el archivo y lo subimos a la carpeta principal de nuestro servidor via FTP. (Consulta con tu servidor cómo subir archivos a tu página web).
Ya tenemos la contraseña preparada.
Ahora creamos la carpeta que queremos proteger, si no la tenemos ya creada. Para el ejemplo usaremos /ejemplo/. De forma que nuestra web es www.miweb.com y la carpeta a proteger quedará así: www.miweb.com/ejemplo/.
B.- Crear el archivo .htaccess
Ahora toca crear el archivo .htaccess que es el que hace la magia.
7.- Creamos otro documento de texto vacío y lo renombramos a .htaccess, nuevamente sin el txt al final.
8.- Lo editamos con el notepad o similar y copiamos este texto en su interior:
AuthUserFile /full/path/to/.htpasswd
AuthName «Carpeta Protegida»
AuthType Basic
<limit GET>
require valid-user
</Limit>
9.- Ya casi estamos. Solo queda cambiar donde pone /full/path/to/ y escribir aquí la dirección completa de nuestra web en el servidor.
[box type=»note»]NOTA: Este dato es el más complicado de localizar. Lo mejor es ponerse en contacto con el servicio de soporte del servidor y solicitárselo. Si no, hay un método algo artesano para descubrirlo, sigue leyendo. Si conoces el Full Path pasa al punto 15 directamente.[/box]
C.- Descubre el Full Path de tu web
10.- Crea un tercer archivo de texto vacío y renómbralo a phpinfo.php (nuevamente sin el txt al final).
11.- Copia este texto y pégalo dentro:
<?
phpinfo();
?>
12.- Guarda el archivo y súbelo a la carpeta principal de tu servidor.
13.- Abre el archivo php en el navegador, normalmente si has seguido el ejemplo estará en www.miweb.com/phpinfo.php
14.- Esto nos dará una serie de datos informativos de tu servidor. Busca DOCUMENT_ROOT o SCRIPT_FILENAME y esa es la dirección compelta de tu web en tu servidor. Suele ser algo así:
/home/content/25/7023132123/html
Ya tenemos el Full Path de nuestra web.
15.- Copia y pega esa dirección en el archivo .htaccess que teníamos creado y guardalo. Debería quedar así:
AuthUserFile /home/content/25/7023132123/html/.htpasswd
AuthName «Carpeta Protegida»
AuthType Basic
<limit GET>
require valid-user
</Limit>
16.- Sube ese archivo a la carpeta que quieres proteger, ojo no a la carpeta principal, sino a la carpeta nueva que acabas de crear /ejemplo/.
[box type=»alert»]OJO no lo subas a la raíz porque podrías cargarte el archivo .htaccess que ya existe allí.[/box]
Ya está listo. Cuando el .htaccess esté en su sitio, si intentas entrar en la carpeta te pedirá un usuario y contraseña y si no lo introduces bien te dará un error 500 del servidor. Compruébalo y revisa que todo funciona correctamente.
Si estás seguro de que lo haces bien y te sigue saliendo el error 500 entonces lo que pasa es que no has puesto correctamente el «full path» en el archivo .htaccess o que el archivo .htpasswd no está dónde debería estar.
Si tienes cualquier duda o pregunta déjame un comentario.
por ejemplo si tengo una galeria de imagenes en wordpress y quiero protegerla con contraseña y que solo quien yo quiera pueda ver esa pagina como se haria eso?
Hola Josemo. Depende de lo que quieras.
Si quieres que no se vea una parte del wordpress, la galería, pero que se siga viendo el resto. Entonces tienes que usar la opción de Wordpress de ponerle contraseña a la página.
Si lo que quieres es proteger la web completa, entonces usa este tutorial.
Espero que te sirva. Un saludo