Crear un área restringida en 5 minutos con .htaccess

Aquí les dejo una guía de como crear un área restringida en pocos pasos.

Primero una breve introducción

¿Qué es un área privada?

Cuando tienes un dominio con alojamiento, o acceso a un directorio via web, mediante unas simples reglas puedes crear un directorio, o hacer que uno existente, se convierta en un área privada. Esto significa que cada vez que alguien desee entrar, tendrá que introducir un usuario y contraseña, de lo contrario no tendrá acceso.

¿Cómo se hace?

Consiste en 2 ficheros, un .htaccess y otro .htpasswd

  1. Lo primero que tenemos que saber es la ruta completa del servidor, hacia el directorio que deseamos restringir. Para esto, creamos un fichero index.php en nuestro escritorio, y le añadimos lo siguiente:
    echo  $_SERVER["DOCUMENT_ROOT"];
    
  2. Subimos este fichero a la carpeta, que de momento es publica y entramos (por .ej:tudominio.com/directorio). Esto nos cargará el fichero index.php y nos mostrará en pantalla la ruta hacia este mismo directorio. Copiamos esta ruta, y la guardamos. Eliminamos el fichero index.php del servidor. ¡MUY IMPORTANTE!
  3. Creamos nuestro fichero .htaccess con las siguientes líneas:
    AuthUserFile   {{RUTA}}/.htpasswd
    AuthName RestrictedArea
    AuthType  Basic
    require user admin
    
    Options +Indexes
    

    El tag {{RUTA}} lo sustituimos por la ruta que nos había mostrado el fichero index.php.
    Cada usuario que desees asignar permisos para este directorio, tiene que tener una línea asociada en este fichero. Si quieres agregar otro usuario aparte de admin, tienes que duplicar la línea con otro nombre.

    require user NombreDesedo
    
  4. Por último, creamos nuestro fichero .htpasswd. En este, colocaremos una línea por cada usuario asignado en .htaccess, con su respectivo password codificado. Para añadir el usuario a .htpasswd, tenemos que acceder a esta web Password Generator, y generar el password del usuario. Es muy sencillo, solo tienes que agregar el nombre del usuario y una contraseña, luego presionas sobre Encrypt, y aparece algo como esto.admin:55NbkUM1a.q.w

    Esta línea es la que tienes que agregar a tu fichero .htpasswd.

  5. Subes estos 2 ficheros (.htaccess y .htpasswd) a la carpeta que deseas restringir, y ya esta. Intenta entrar nuevamente al directorio. Te debería salir un mensaje con 2 cajas de texto para introducir, usuario y contraseña.Área restringida

Espero te haya sido de ayuda…