Autenticación · 5 min read · Jan 04, 2026

.htaccess Basada en Autenticación en Subdirectorios

.htaccess Basada en Autenticación en Subdirectorios

Autor: Nayyar Ahmad

Contacto: nayyares AT gmail DOT com

Página principal: www.cbtcandy.org

Dedicatoria: A Baji, por todos esos esfuerzos que hizo por mí.

Prefacio:

.htaccess se utiliza para proporcionar la facilidad de cambiar la configuración por directorio, este archivo puede contener una o más directivas que se aplicarán al directorio que contiene el archivo .htaccess.

.htaccess es un nombre popular de este archivo de modificación de configuración, puedes cambiar este nombre predeterminado cambiando el parámetro AccessFileName en el archivo de configuración de Apache. es decir.

AccessFileName .anyname

En este tutorial, tomaré un escenario ficticio de dos subdirectorios en paralelo y implementaré la autenticación por contraseña en ambos. Esto significa que solo aquellos usuarios que tengan el nombre de usuario y la contraseña correctos pueden acceder a estos directorios.

Así que comienza :)

Aquí asumo que tu directorio DocumentRoot es /var/www/html, pero si tienes una configuración de VirtualHost o incluso Apache está configurado en algún otro directorio raíz, entonces puedes ajustar esto según tu situación.

Nota: Tomaré dos nombres ficticios para estos directorios como test-dir1 y test-dir2.

1 Creando Directorio:

$ cd /var/www/html
$ mkdir test-dir1
$ mkdir test-dir2

2 Creación de Archivo HTML de Prueba:

Creando archivo html en el primer directorio.

$ cd /var/www/html/test-dir1
$ cat > index.htm

| PÁGINA DE PRUEBA EN TEST-DIR1. |

Creando archivo html en el segundo directorio.

$ cd /var/www/html/test-dir2
$ cat > index.htm

| PÁGINA DE PRUEBA EN TEST-DIR2. |

3 Navegando Páginas de Prueba:

Ahora puedes navegar y probar si las páginas están disponibles o no, abriendo cualquier navegador web, me gusta Firefox (¡porque es genial :)!) y escribiendo:

http://localhost/test-dir1/

Esto mostrará la página de prueba del primer directorio, y

http://localhost/test-dir2/

mostrará la segunda página de prueba en test-dir2.

Si puedes ver ambas páginas, significa que estás a punto de dominar .htaccess.

4 Creación del Archivo .htaccess:

$ cd /var/www/html/test-dir1
$ vi .htaccess

Escribe las siguientes líneas en este archivo:

| AuthName "Usuarios Autorizados Solo." AuthType Basic AuthUserFile /etc/httpd/conf/.htpasswd require user testusr |

Ahora explicaré qué líneas mágicas hemos escrito en este archivo:

El parámetro AuthName simplemente define el título del cuadro de entrada de contraseña cuando el usuario inicia sesión, mientras que AuthType le dice al servidor qué tipo de procesamiento se está utilizando, y Basic es el más común y perfectamente adecuado para casi cualquier propósito. AuthUserFile se utiliza para definir la ubicación del archivo .htpasswd, este archivo contiene la contraseña del usuario que va a ser autenticado en el archivo .htaccess. require user se utiliza para identificar al usuario de confianza, si hay más de un usuario de confianza, entonces puedes especificar sus nombres en una lista separada por espacios.

Ahora, para hacer que test-dir2 esté protegido por .htaccess, necesitamos copiarlo de test-dir1 a test-dir2 ** con el siguiente comando:

$ cp /var/www/html/test-dir1/.htaccess /var/www/html/test-dir2/

5 Creación de Usuario:

Aquí crearemos un usuario de prueba para verificar nuestro .htaccess:)

$ adduser testusr
$ passwd testusr

6 Informando a Apache sobre los Usuarios:

Ahora tenemos que informar a Apache sobre el usuario y su contraseña, pero antes de entrar en este paso, hay un deber social que debo cumplir, es decir, explicar la diferencia entre la instalación de Apache por RPM y por fuente. :) Si has instalado Apache desde RPM, entonces instalará todos los comandos relacionados en tu /usr/local/bin, así que no hay problemas, puedes dar el comando htpasswd en cualquier lugar de tu sistema, pero si has instalado Apache desde la fuente, entonces tienes que encontrar el directorio bin de Apache para ejecutar el comando htpasswd. En este HowTo daré ambos métodos, aquí está:

$ htpasswd -c /etc/httpd/conf/.htpasswd testusr

El comando anterior funcionará si tienes htpasswd en tu /usr/local/bin y esto sucede si instalas Apache desde RPM. /etc/httpd/conf/.htpasswd es la ubicación del archivo que contendrá la contraseña del usuario autenticado/de confianza.

O

$ cd /apache/bin/
$ ./htpasswd -c /etc/httpd/conf/.htpasswd testusr

Los comandos anteriores son correctos si has instalado Apache desde las fuentes, $ cd /apache/bin puede ajustarse según tu sistema, ya que tal vez lo hayas instalado en otro lugar.

7 Permisos del Archivo .htpasswd:

Necesitamos establecer los permisos del archivo .htpasswd y hacer que el usuario de apache sea el propietario de este archivo.

$ chown apache.apache /etc/httpd/conf/.htpasswd

8 Editando httpd.conf:

Ahora tenemos que editar el httpd.conf, ya que Apache necesita ser informado sobre .htaccess, aquí cambiaremos AllowOverride All | none a Authconfig, ahora hay dos casos, uno si solo estás alojando un sitio y otro si tienes VirtualHost, aquí está el Primer Caso:

En este caso, solo tenemos una etiqueta Directory en el archivo httpd.conf ya que estamos alojando solo un sitio, así que editaremos la etiqueta para /var/www/html.

| AllowOverride AuthConfig Order allow,deny Allow from all |

Ahora para el segundo caso, cuando tenemos varios sitios alojados, es decir, VirtualHost:

| DocumentRoot /var/www/html/cbtcandy ServerName www.cbtcandy.org AllowOverride AuthConfig Order allow,deny Allow from all Options -Indexes |

9 Reiniciando Apache:

Ahora tienes que reiniciar el servidor Apache para recargar la configuración.

Para sistemas basados en RPM:

$ service httpd restart

Para sistemas basados en fuente, ajusta la ruta del directorio bin de tu Apache.

$ /apache/bin/apachectl restart

10 Pruebas:

Ahora todo está listo para ser probado, nuevamente abre tu navegador favorito y trata de abrir los siguientes enlaces:

http://localhost/test-dir1/

y

http://localhost/test-dir2/

Nota: Cuando navegues por estos enlaces, se te pedirá el nombre de usuario y la contraseña, una vez que los proporciones, te llevará a la página de prueba. Pero una vez que inicies sesión en un directorio, no se requerirá el nombre de usuario y la contraseña para el otro directorio de prueba, ya que Apache no pedirá el nombre de usuario y la contraseña una y otra vez para directorios de igual nivel o subdirectorios. Así que una vez que estés autenticado, los directorios hijos y paralelos están abiertos para su uso. Pero si aún deseas verificarlos, usa un navegador basado en texto como links, eso es lo que hago para verificarlos.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.