Saltar al contenido
BeoHosting
BeoHosting
Técnico

Guía del archivo .htaccess

BeoHosting Team··10 min read de lectura
Guía del archivo .htaccess

¿Qué es el archivo .htaccess?

.htaccess (Hypertext Access) es un archivo de configuración para los servidores web Apache y LiteSpeed. En BeoHosting lo editas a través del panel de control cPanel. Se encuentra en el directorio raíz de tu sitio y te permite controlar el comportamiento del servidor a nivel de directorio, sin acceso a la configuración principal del servidor. Esto lo hace extremadamente útil en el hosting compartido, donde no tienes acceso a httpd.conf.

El punto inicial del nombre significa que el archivo está oculto en los sistemas Linux/Unix. Algunos clientes FTP y gestores de archivos no lo muestran de forma predeterminada: revisa las opciones para mostrar archivos ocultos. En cPanel, el Administrador de archivos tiene una opción «Show Hidden Files» en los ajustes.

¿Dónde se ubica el .htaccess?

El archivo .htaccess principal está en el directorio raíz de tu sitio (public_html o htdocs). Las reglas que contiene se aplican a todos los archivos y subdirectorios. Puedes tener archivos .htaccess adicionales en los subdirectorios, con reglas específicas para ese directorio, que sobrescriben las del .htaccess superior para los archivos de ese directorio.

Redirecciones

Redirección permanente 301

Una redirección 301 indica a los motores de búsqueda que la página se ha movido permanentemente a una nueva dirección. El valor SEO (link juice) se transfiere a la nueva URL. Úsala al cambiar la estructura de URL, al mover el sitio a un nuevo dominio o al consolidar varias URL en una sola.

  • Redirigir una página: Redirect 301 /old-page /new-page redirige una ruta concreta a otra nueva.
  • Redirigir un dominio entero: usa RewriteRule con una condición HTTP_HOST para redirigir todo el tráfico de un dominio a otro.
  • Redirigir www a no-www: una RewriteCond para HTTP_HOST que comprueba el prefijo www y redirige a la versión sin www (o viceversa).

Redirección temporal 302

Una redirección 302 es temporal: indica a los motores de búsqueda que mantengan la URL antigua en el índice, porque la página puede volver a su dirección original. Úsala para promociones temporales, pruebas A/B o mantenimiento.

Forzar HTTPS

Uno de los usos más comunes del .htaccess es redirigir el tráfico HTTP a HTTPS. Para ello necesitas un certificado SSL instalado que habilite HTTPS. Esto es esencial para la seguridad del sitio y el posicionamiento SEO. La regla utiliza RewriteCond para comprobar si la conexión ya es HTTPS (mediante la variable HTTPS o la cabecera X-Forwarded-Proto) y, si no lo es, realiza una redirección 301 a la versión HTTPS de la misma URL.

Reglas de seguridad

Proteger el acceso a archivos sensibles

Bloquea el acceso a archivos que no deberían ser accesibles públicamente. Una directiva FilesMatch con expresiones regulares puede bloquear el acceso a archivos de configuración como .htaccess, .env, wp-config.php, php.ini y similares. El servidor devuelve un 403 Forbidden cuando alguien intenta acceder a estos archivos.

Desactivar el listado de directorios

La opción «Options -Indexes» impide que Apache muestre la lista de archivos de un directorio que no tiene archivo índice. Sin esta opción, cualquiera puede ver todos los archivos de un directorio con solo visitar su URL.

Bloquear bots maliciosos

Usa RewriteCond con la variable HTTP_USER_AGENT para bloquear bots maliciosos conocidos, scrapers y crawlers de spam. Puedes emplear expresiones regulares para coincidir con varias cadenas de user-agent y redirigirlas a una página 403 o sencillamente bloquear el acceso.

Protección contra hotlinking

El hotlinking se produce cuando otros sitios usan tus imágenes directamente desde tu servidor, consumiendo tu ancho de banda. Una regla RewriteCond comprueba la cabecera HTTP_REFERER y bloquea las peticiones de imágenes (jpg, jpeg, png, gif, svg) que no proceden de tu dominio. Incluso puedes redirigir las imágenes con hotlinking a una imagen de marcador de posición que indique que el hotlinking está bloqueado.

Caché

Una caché bien configurada acelera enormemente tu sitio para los visitantes recurrentes. El navegador almacena los archivos localmente para no tener que descargarlos de nuevo en cada visita.

Ajustes de caché por tipo de archivo

Usa mod_expires para controlar cuánto tiempo cachean los navegadores los distintos tipos de archivo:

  • Imágenes (jpg, png, gif, svg, webp): 1 año; las imágenes cambian rara vez.
  • Archivos CSS y JavaScript: 1 mes; cambian más a menudo que las imágenes, pero no a diario.
  • Fuentes (woff, woff2, ttf): 1 año; las fuentes prácticamente nunca cambian.
  • Páginas HTML: caché corta o nula; el contenido se actualiza con frecuencia.
  • PDF y documentos: 1 mes; se actualizan de vez en cuando.

Compresión GZIP

La compresión GZIP reduce el tamaño de los archivos enviados al navegador, normalmente entre un 60 y un 80 %. Usa mod_deflate para comprimir text/html, text/css, application/javascript, application/json, text/xml y formatos de texto similares. No comprimas imágenes, porque ya están comprimidas.

Páginas de error personalizadas

En lugar de los errores genéricos del servidor, puedes mostrar páginas personalizadas con el estilo de tu sitio que ayuden a los visitantes a encontrar lo que buscan.

  • ErrorDocument 404: la página que se muestra cuando la página solicitada no existe. Incluye un buscador del sitio, enlaces populares e información de contacto.
  • ErrorDocument 403: se muestra cuando el acceso está prohibido. Explica el motivo y ofrece una alternativa.
  • ErrorDocument 500: error interno del servidor. Explica que el problema es temporal y ofrece un contacto de soporte.
  • ErrorDocument 503: servicio no disponible. Útil para mostrar una página de mantenimiento con la hora de regreso prevista.

Snippets útiles para el día a día

Bloquear una dirección IP

Usa las directivas Require (Apache 2.4+) o Order/Deny (Apache 2.2) para bloquear direcciones IP o rangos concretos. Resulta útil para bloquear atacantes conocidos o visitantes no deseados.

Proteger el administrador de WordPress

Restringe el acceso al directorio wp-admin y a wp-login.php a direcciones IP concretas. Esto reduce drásticamente los ataques de fuerza bruta a tu sitio WordPress. También puedes añadir autenticación HTTP como capa de protección adicional.

Definir valores de PHP

En el hosting compartido puedes cambiar la configuración de PHP mediante .htaccess usando las directivas php_value y php_flag: upload_max_filesize para el tamaño de subida, max_execution_time para el tiempo de espera del script, memory_limit para la RAM y post_max_size para el tamaño de las peticiones POST.

Redirección de mantenimiento

Cuando trabajas en el sitio y quieres mostrar una página de mantenimiento a los visitantes, usa RewriteCond para comprobar si el visitante procede de tu IP (déjate pasar a ti mismo) y redirige a todos los demás a una página maintenance.html. Usa una redirección 302 (temporal), nunca una 301.

Errores comunes y resolución de problemas

  • 500 Internal Server Error: el error más común. Suele significar un error de sintaxis en el .htaccess. Revisa los logs del servidor (Error Log en cPanel) para ver los detalles. Elimina las reglas una a una hasta dar con la problemática.
  • Bucle de redirección: ocurre cuando dos reglas se redirigen entre sí. Usa condiciones RewriteCond para evitar el bucle (por ejemplo, comprobar si ya es HTTPS antes de redirigir).
  • Las reglas no funcionan: comprueba si mod_rewrite está activado. En LiteSpeed, las reglas de Apache suelen funcionar, pero puede haber diferencias. Verifica también que el .htaccess tenga los permisos adecuados (644).
  • Problema con UTF-8: guarda el archivo .htaccess en codificación UTF-8 sin BOM (Byte Order Mark). El BOM puede provocar comportamientos inesperados.

Conclusión

.htaccess es una herramienta potente que te da control del sitio a nivel de servidor. Desde las redirecciones y la seguridad, pasando por la caché, hasta las páginas de error personalizadas: una buena configuración puede mejorar drásticamente el rendimiento, la seguridad y el SEO. Haz siempre una copia de seguridad antes de cualquier cambio, prueba regla a regla y usa los logs del servidor para diagnosticar problemas.

BeoHosting Team

10+ años de experiencia — Especialistas en alojamiento web e infraestructura

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Última actualización: