A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Qué es Htaccess

Archivo .htaccess

Un archivo .htaccess es un archivo de configuración distribuida que permite aplicar directivas del servidor Apache HTTP a un directorio concreto. Sus reglas pueden afectar también a los subdirectorios, según la jerarquía del sitio y la configuración principal del servidor.

El punto inicial hace que sea un archivo oculto en sistemas de tipo Unix. No es una tecnología universal de los servidores web ni una forma de acortar una URL. Su funcionamiento depende de Apache, de los módulos instalados y de las directivas que el administrador haya permitido.

Funcionamiento de .htaccess

Cuando Apache recibe una solicitud, puede buscar archivos `.htaccess` desde los directorios superiores hasta el directorio del recurso solicitado. Las reglas aplicables se combinan siguiendo ese recorrido, por lo que un archivo situado en una carpeta puede modificar el comportamiento de esa carpeta y de las que dependen de ella.

La directiva AllowOverride, definida en la configuración principal, determina si Apache lee estos archivos y qué categorías de instrucciones acepta. `AllowOverrideList` puede limitar el permiso a directivas concretas. Si el servidor establece `AllowOverride None`, el archivo se ignora aunque exista.

Las instrucciones utilizan la misma sintaxis general que la configuración principal, pero no todas están autorizadas en contexto de directorio. El resultado depende además de módulos como `mod_rewrite`, `mod_headers`, `mod_expires` o `mod_authz_core`.

Directivas habituales

El archivo puede resolver necesidades locales sin modificar la configuración global. Sus usos frecuentes dependen de los permisos y módulos disponibles:

  • Redirecciones: Enviar una solicitud a otra dirección con el código de respuesta adecuado.
  • Reescrituras: Transformar rutas visibles en rutas internas procesadas por una aplicación.
  • Errores: Asignar documentos propios a respuestas como Error 404.
  • Caché: Definir cabeceras de expiración para determinados tipos de recursos.
  • Compresión: Activar la compresión de respuestas cuando el módulo correspondiente está disponible.

También puede establecer tipos MIME, índices de directorio, autenticación o cabeceras. Un archivo `.htaccess` no activa por sí solo estas capacidades: cada directiva válida necesita el contexto, el módulo y el permiso adecuados.

Reescritura de URL

El módulo `mod_rewrite` evalúa condiciones y reglas para cambiar cómo se procesa una ruta. Una reescritura interna entrega el contenido desde otra ubicación sin modificar la dirección que ve el navegador. Una redirección, en cambio, devuelve una respuesta que lleva al cliente a otra URL.

Esta diferencia técnica es relevante al migrar páginas, normalizar dominios o forzar HTTPS. Una redirección 301 comunica un traslado permanente, mientras que otros códigos expresan situaciones distintas. El código debe elegirse por el significado del cambio, no solo porque una regla produzca el destino esperado.

Las reglas mal ordenadas pueden generar bucles, cadenas, rutas duplicadas o parámetros inesperados. Estos efectos dificultan el rastreo, dispersan señales y aumentan el tiempo de respuesta. `.htaccess` puede implementar decisiones SEO, pero no sustituye la planificación de la arquitectura ni de los destinos.

Control de acceso

Apache permite restringir recursos por autenticación, identidad, host o dirección IP. En Apache 2.4, el sistema de autorización utiliza normalmente directivas `Require`. El alcance real depende del directorio donde se ubica el archivo y de las excepciones definidas en niveles inferiores.

Al interpretar reglas de acceso conviene distinguir varias funciones diferentes que suelen confundirse:

  • Autenticación: Comprueba la identidad mediante un proveedor configurado.
  • Autorización: Decide si esa identidad puede acceder al recurso.
  • Filtrado IP: Permite o deniega solicitudes según la dirección observada.
  • Protección de archivos: Impide servir recursos sensibles desde el árbol público.
  • Páginas de error: Presenta una respuesta controlada, sin corregir la causa del fallo.

Una sintaxis no válida o una directiva prohibida puede provocar un Error 500. Además, ocultar un archivo o bloquear una ruta no corrige vulnerabilidades de la aplicación. `.htaccess` es una capa de configuración, no un sistema completo de seguridad.

Rendimiento del servidor

Cuando los archivos distribuidos están habilitados, Apache debe comprobar su presencia y leer las reglas aplicables durante las solicitudes. Ese trabajo repetido añade coste, incluso cuando algunas carpetas no contienen un archivo. Cuantos más niveles y reglas deban evaluarse, mayor puede ser el impacto.

Si existe acceso administrativo, Apache recomienda situar las directivas en la configuración principal, que se carga al iniciar o recargar el servidor. `.htaccess` resulta útil sobre todo en alojamientos gestionados y entornos donde el propietario del contenido no puede editar esa configuración.

La compresión, la caché y unas reglas eficientes pueden contribuir al WPO, pero el archivo no garantiza una web rápida. Servidores como Nginx o Microsoft IIS utilizan otros mecanismos, y algunos gestores de contenido regeneran sus reglas. Cualquier cambio debe evaluarse dentro de la plataforma concreta que atiende las solicitudes.