Qué es .htaccess

4min

En este post vamos a abordar el archivo .htaccess, una de las principales herramientas que tenemos a nuestra disposición para configurar Apache, el servidor web más extendido en la actualidad.

Índice

El archivo .htaccess

El archivo .htaccess es un fichero de texto plano que se puede colocar opcionalmente en los directorios de las páginas web alojadas con el servidor Apache. Este archivo toma el nombre de .htaccess y, en caso de existir en una carpeta, permite configurar el comportamiento del servidor web para esa carpeta y cualquier subdirectorio que contenga.

Nota: En muchos sistemas operativos los archivos que comienzan por un punto (como .htaccess) son archivos ocultos. Por lo tanto, es muy habitual que los exploradores de archivos oculten el .htaccess al mostrar el listado de ficheros contenidos en una carpeta. Por ello, para poder encontrar los archivos .htaccess podemos explorar el directorio usando un explorador de ficheros como el que viene integrado en los editores de código, como por ejemplo VSCode. Otra opción tradicionalmente usada es el terminal de línea de comandos. Si es un terminal basado en Bash o Zsh (como los terminales avanzados en Windows, y cualquier terminal Linux o Mac), para listar los archivos de una carpeta mostrando también los ficheros ocultos, lanzamos el comando «ls -la».

Al tratarse de un archivo de texto normal, podemos subirlo como cualquier otro contenido a un espacio de alojamiento web y nos servirá para configurar el servidor. Por supuesto, al alojar este archivo en un servidor Apache, los visitantes no podrán acceder a él, sino que simplemente servirá para alterar el modo de funcionamiento de un sitio web.

Por qué es importante

La configuración general de Apache está en determinados archivos de acceso restringido a los administradores del servidor. Por ello, se trata de archivos a los que no tendremos acceso, a no ser que dispongamos de un servidor propio, como en VPS, servidores cloud o dedicados.

En el caso de usar alojamientos compartidos (el hosting tradicional más económico) no se dispone de acceso a la configuración global de Apache, ni tan siquiera a la configuración particular del dominio que tenemos alojado en el servidor. Esto es normal, ya que una mala configuración de Apache podría afectar negativamente a nuestro dominio y, además, a los otros dominios alojados en este servidor.

Esa carencia a la hora de configurar Apache resulta a veces crítica para las aplicaciones desplegadas en alojamientos compartidos, ya que los desarrolladores no disponen las capacidades necesarias para conseguir comportamientos frecuentemente deseados. Aquí es donde el archivo .htaccess entra en juego, permitiendo especificar determinadas configuraciones a nivel de carpeta.

Utilidades del archivo

Por supuesto, con el archivo .htaccess no podemos hacer todas las cosas que se podrían conseguir con la configuración de Apache a nivel de servidor o de dominio, pero sí nos ofrece un buen juego de utilidades que se usan en multitud de aplicaciones web.

El uso más importante de .htaccess es el de reescribir las rutas. La reescritura de rutas sirve para que el servidor web, Apache, pueda servir determinadas URLs mediante archivos alojados en otros lugares del sistema de archivos. Esta utilidad sirve para conseguir dos efectos importantes:

.htaccess para SEO

Gracias a .htaccess se consiguen lo que se denominan rutas amigables a buscadores. Estas rutas contienen por lo general palabras clave adecuadas para la indexación de los contenidos. Ejemplo; usando rutas amigables podemos conseguir que direcciones feas y poco atractivas para SEO como:

https://example.com/articulo.php?id=44

Se puedan acceder a partir de rutas como estas:

https://example.com/articulo/htaccess-para-seo https://example.com/articulo/htaccess-para-seo.html

La mayoría de los sistemas como WordPress o cualquier otro CMS popular, incluso los frameworks, se basan en el archivo .htaccess para conseguir hacer estas rutas amistosas a buscadores.

Nota: El archivo .htaccess en WordPress se crea durante el proceso de instalación del CMS al instalarse en un servidor web con Apache.

Con el siguiente código en el archivo .htaccess conseguiremos reescrituras de URLs como las anteriores:

RewriteEngine On

RewriteRule ^/articulo/(.+)$ articulo.php?id=$1

También se usan mucho las reescrituras para disponer de arquitecturas de archivos limpias en las aplicaciones web, ya que sin ellas, para conseguir rutas amigables necesitaríamos que existiesen físicamente los archivos como “htaccess-para-seo.html” o “otro-articulo-interesante.html” en el servidor. Por lo tanto, cada vez que se publica un contenido se requeriría realizar un nuevo archivo, inundando posiblemente una carpeta con archivos innecesarios o simplemente haciendo el proceso de publicación más complicado y laborioso.

.htaccess para redirecciones

Otro de los efectos más habituales de los archivos .htaccess es el de las redirecciones. Mediante la configuración de este archivo se pueden conseguir redirecciones de unas rutas a otras, sin necesidad de intervenir con programación del lado del servidor. Las redirecciones también son muy útiles para SEO y podemos conseguir migrar una URL transfiriendo toda su relevancia y posicionamiento.

Redirect 301 /url/antigua.html /url/nueva.php

Podemos realizar muchos tipos de redirecciones, por ejemplo, si deseamos migrar todo un dominio, conservando el SEO de todas las URL pero en un nuevo nombre de dominio podríamos escribir esta regla.

Redirect 301 / https://example.com/

Nota: la redirección 301 significa movido de manera permanente. Si se trata de una redirección temporal tenemos que usar 302.

Conclusión

Hemos visto los dos usos más comunes del archivo .htaccess, pero en realidad tiene muchas otras utilidades como permitir o no consultar diversos contenidos, bloquear a determinadas IP, evitar que usen nuestras imágenes desde otros dominios, comprimir los ficheros antes de enviarlos al cliente, etc… Sin embargo, ten en cuenta que no todas las utilidades de .htaccess pueden estar disponibles en todos los servidores web.

Fernán García de Zúñiga

Productos relacionados: