Un .htaccess archivo o un archivo de configuración distribuido es un archivo robusto utilizado para controlar y gestionar las configuraciones de un sitio web. Todos los cambios de configuración se realizan por directorio para garantizar que los archivos de configuración del servidor principal no se vean alterados.
Cuándo es preferible usar el archivo .htaccess
Ya sea que su objetivo sea cargar páginas de error o implementar seguridad por contraseña, un .htaccess tiene una lista de usos. Algunos de los ejemplos más comunes incluyen:
-
Añadir redirecciones para una URL específica o una lista de URLs.
-
Habilitar la protección por contraseña en ciertos directorios de un servidor.
-
Cargar páginas de error personalizadas.
-
Forzar a un sitio a usar HTTPS en lugar de HTTP.
-
Bloquear IPs o dominios específicos.
En esta guía, le guiaremos a través de los pasos para habilitar, crear y usar el archivo .htaccess.
Requisitos previos
Para seguir este tutorial, debe tener lo siguiente:
-
La última versión de Ubuntu instalada en su sistema.
-
Servidor web Apache debe estar instalado en su servidor Ubuntu.
-
Un host virtual de Apache configurado para su dominio.
-
Los usuarios del sistema deben tener privilegios de sudo.
-
Host virtual asegurado con SSL.
-
Siga Cómo asegurar Apache con Let’s Encrypt en Ubuntu 18.04 si configura y asegura Apache usando su dominio personalizado.
-
Alternativamente, puede Crear un certificado SSL autofirmado para Apache en Ubuntu 20.04 si tiene la intención de usar Apache para necesidades de prueba.
-
|
Nota: Hay muchos proveedores de dominios que puede considerar para comprar dominios personalizados en línea. Namecheap, Freenom, y Bluehost, por nombrar algunos, son bien conocidos por su servicio excepcional. |
Una vez que haya terminado con la configuración inicial, inicie sesión en su servidor como el usuario sudo y comencemos.
Paso 1 — Habilitar el archivo .htaccess
Por defecto, el archivo .htaccess está deshabilitado. Primero debemos cambiar la configuración de Apache y habilitar el archivo .htaccess.
Abra el archivo de host virtual apache2/sites-available/your_domain.conf usando nano o cualquier editor de texto preferido:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
Asumiendo que ya tiene lista la configuración analizada en la guía del servidor web Apache guide, encontrará el siguiente detalle de configuración:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
A continuación, incluya el siguiente contenido de Directory dentro del bloque VirtualHost:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/su_dominio> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
En el bloque de código anterior, la línea AllowOverride All bajo la sección Directory es la más significativa de todas. Esta sección habilita el uso de archivos .htaccess .
Después de eso, guarde su trabajo y cierre el archivo. Si está utilizando el nano editor de texto, use el atajo CTRL + X, Y, y ENTER para cerrar el archivo.
Verifique la configuración antes de reiniciar el servidor web:
|
1 |
$ sudo apache2ctl configtest |
Verá Syntax OK como salida si todo está en su lugar. Ahora, reinicie el servidor para agregar su política de contraseñas:
|
1 |
$ sudo systemctl restart apache2 |
Una vez que las configuraciones del archivo .htaccess estén habilitadas, es hora de crear un nuevo archivo.
Step 2 — Create a .htaccess File
Crear un archivo .htaccess es sencillo. Debe navegar al directorio raíz web, es decir, la fuente, para ubicar el archivo .htaccess para asegurarse de que los cambios de configuración se ejecuten correctamente.
|
Nota: Tenga cuidado al ubicar el archivo .htaccess. Un error sutil en la configuración podría afectar negativamente a su directorio y a los directorios siguientes. Por ejemplo, si su objetivo es tener múltiples sitios web en el mismo servidor Apache, coloque su archivo .htaccess en el directorio raíz web mapeado con el sitio web. |
Si ha seguido el prerrequisito discutido anteriormente, obtendrá el directorio web raíz en /var/www/my_domain/.htaccess. A continuación, cree un archivo .htaccess para su sitio web usando:
|
1 |
$ sudo nano /var/www/su_dominio/.htaccess |
Una vez que tengamos nuestro archivo .htaccess listo, echemos un vistazo a algunos de sus casos de uso.
Step 3 — Common Uses of .htaccess File

El uso de un archivo .htaccess en su sitio viene con una lista de ventajas. Discutamos cada una en detalle:
-
Redirección de URLs
La redirección de URLs, también conocida como reenvío de URL, es una función del servidor web utilizada para redirigir a un visitante de un dominio a otra URL. Puede usar .htaccess para sus necesidades de redirección de URL. Agregue lo siguiente en su archivo .htaccess para mapear la URL de origen a la URL de destino:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
Crear páginas de error personalizadas
Una faceta útil del archivo .htaccess es crear una página de error personalizada. Generalmente, cuando un usuario encuentra una página que no existe en el sitio web, aparece un mensaje de error en la pantalla. Algunos de los códigos de error HTTP comunes incluyen:
-
400 Bad Request
-
401 No autorizado
-
403 Prohibido
-
404 No encontrado
-
500 Error interno del servidor
-
502 Puerta de enlace incorrecta
-
503 Servicio no disponible
A diferencia del error de página predeterminado del servidor “Page Not Found”, haga uso del archivo .htaccess para proporcionar a sus usuarios una experiencia de navegación mejorada y fácil de usar.
-
Configurar la autenticación de seguridad
Usando el archivo .htaccess, también puede configurar la autenticación de seguridad. Para esto, necesita crear un archivo .htpasswd para autenticar a los usuarios.
Use el comando htpasswd para crear un archivo de contraseñas por motivos de seguridad. Apache utilizará este archivo de contraseñas para autenticar a los usuarios verificados. Navegue al directorio /etc/apache2 y cree un archivo confidencial llamado .htpasswd.
Para crear el archivo .htpasswd necesario, use el -c opción la primera vez que utilices esta utilidad de seguridad de contraseña. A continuación, especifica el nombre de usuario al final del comando para listar una nueva entrada dentro del archivo. Después de eso, reemplaza el nombre de usuario nick (utilizado en este tutorial) con tu nombre de usuario:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
A continuación, se te pedirá que proporciones y verifiques la contraseña del usuario.
Continúa leyendo este tutorial para obtener más información sobre cómo establecer y configurar la autenticación por contraseña con Apache en Ubuntu 20.04.
-
Añadir tipos MIME
La clasificación de los archivos utilizados en Internet es muy sencilla utilizando el tipo Extensiones de Correo Internet de Propósito Múltiple (MIME). En varios escenarios donde un sitio web no puede entregar un archivo específico, añadir extensiones soluciona el problema. Utiliza el siguiente código para añadir tipos de Extensiones de Correo Internet de Propósito Múltiple (MIME) a tu servidor Apache en el archivo .htaccess :
|
1 |
AddType audio/mp4a-latm .m4a |
|
Nota: En nuestra guía, tenemos un tipo MIME de archivo de audio. Reemplaza la aplicación y la extensión de archivo con tu tipo MIME de destino. Además, asegúrate de que la configuración del host virtual y el directorio de ubicación del archivo .htaccess puedan utilizar la directiva AddType. De lo contrario, obtendrás un Error interno del servidor 500. |
-
Server Side Includes (SSI)
Los SSI son directivas que alimentan contenido dinámico a una página HTML. Se utilizan para actualizar una gran cantidad de páginas con algunos datos específicos sin necesidad de actualizar cada página de forma explícita.
En los archivos HTML, el Server Side Includes SSI está desactivado por defecto. Añade el siguiente código a tu archivo .htaccess para habilitar SSI:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
Las líneas anteriores primero validan los archivos .shtml. Luego, la confirmación se envía al archivo .htaccess mientras se permite al servidor analizar todos los archivos .shtml.
Alternativamente, puedes utilizar XBitHack para analizar múltiples contenidos .html en lugar de renombrar las extensiones .shtml una por una. Añade la siguiente línea al archivo .htaccess para utilizar XbitHAck y solicitar a Apache que compruebe todos los archivos .html :
|
1 |
XBitHack on |
A continuación, debes cambiar los permisos para otorgar a la página la elegibilidad para utilizar XBitHack. Utiliza el siguiente comando chmod para hacer esto:
|
1 |
$ chmod +x pagename.html |
-
Gestionar dirección IP
A veces, es posible que desees bloquear una IP o un rango de direcciones IP que visitan tu sitio por motivos de seguridad. Inserta las siguientes líneas de código en tu archivo .htaccess para restringir la IP de destino:
|
1 |
Order Deny, Allow Deny from A.A.A.A (donde A.A.A.A es una dirección IPv4 específica) |
Utiliza una línea separada para bloquear más de una IP:
|
1 |
Order Deny Allow Deny from A.A.A.A (donde A.A.A.A es una dirección IPv4 específica) Deny from B.B.B.B (donde B.B.B.B es una dirección IPv4 específica) |
Además, puedes bloquear dominios para que no accedan a tu sitio web. Restringe un dominio específico añadiendo la siguiente línea de código al archivo .htaccess :
Order Deny, Allow Deny from www.blockdomain.com (donde www.blockdomain.com es un dominio específico)
Riesgos de usar .htaccess
Añadir un archivo
.htaccess es sin duda una decisión inteligente para configurar tu sitio web y hacerlo fácil de usar. Sin embargo, cualquier modificación realizada en los ajustes de configuración conlleva otros costes asociados. Veamos algunas razones de peso que sugieren por qué no debes utilizar el archivo
.htaccess :
i. Pérdida de rendimiento: Cada vez que un servidor escanea el directorio de una página y su archivo .htaccess, la página se carga. Como resultado, la pérdida de velocidad y rendimiento se convierte en una preocupación principal.
ii. Seguridad: El acceso a los archivos .htaccess otorga un control total sobre la configuración del servidor. Eso significa que cualquier usuario no autorizado que obtenga acceso al archivo .htaccess acceso al .htaccess archivo, lo que a su vez conduce a posibles riesgos de seguridad.
iii. Accesibilidad: Los .htaccess archivos deben manejarse con el mayor cuidado y atención. Si hay algún error en el .htaccess archivo, puede hacer que todo el sitio web se caiga.
Conclusión
En esta guía, obtuvimos una idea completa de cómo habilitar, crear y usar un .htaccess archivo. Analizamos el caso de uso de cuándo y dónde se debe usar el .htaccess archivo. Aproveche los .htaccess archivos para salvaguardar su sitio web y protegerlo contra ataques. Sin embargo, existen varios inconvenientes al usar este archivo de configuración que no deben ignorarse. En pocas palabras, use los .htaccess archivos según el uso de su servidor y las necesidades de acceso del usuario.
Además, hay otros tutoriales de redes que puede encontrar en nuestro blog:
Comentarios
Aún no hay comentarios. Sea el primero.