El archivo .htaccess es uno de los archivos más potentes y más peligrosos de tu servidor web. Con él puedes configurar redirecciones, proteger tu web y reescribir URL. Pero basta un error tipográfico para que tu web solo muestre un Error 500.

¿Qué es .htaccess?

.htaccess (hypertext access) es un archivo de configuración para servidores web Apache. Se encuentra en la raíz de tu página web e influye en cómo el servidor gestiona las peticiones.

El punto inicial significa que es un archivo oculto. En tu cliente FTP puede que tengas que activar "mostrar archivos ocultos".

¿Para qué se usa .htaccess?

  • Redirecciones: enviar URL a otras ubicaciones
  • Reescritura de URL: URL limpias sin la extensión .php
  • Seguridad: proteger carpetas, bloquear IP
  • Caché: configurar la caché del navegador
  • Forzar HTTPS: redirigir HTTP a HTTPS
  • Páginas de error: configurar una página 404 personalizada

Reglas de .htaccess más usadas

Forzar HTTPS en lugar de HTTP

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

De www a sin www (o al revés)

# De www a sin www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# De sin www a www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Redirección concreta

Redirect 301 /oude-pagina https://example.com/nieuwe-pagina

Página 404 personalizada

ErrorDocument 404 /404.html

Proteger una carpeta con contraseña

AuthType Basic
AuthName "Beveiligd gebied"
AuthUserFile /pad/naar/.htpasswd
Require valid-user

Bloquear una dirección IP

Deny from 123.456.789.000

Caché del navegador

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>

WordPress y .htaccess

WordPress usa .htaccess para los enlaces permanentes. El contenido predeterminado:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

No cambies nada entre BEGIN y END WordPress: WordPress sobrescribe esas líneas.

Editar .htaccess de forma segura

  1. Haz una copia de seguridad: descarga el archivo actual
  2. Edita en local: usa un buen editor de texto (¡no Word!)
  3. Sube y prueba: carga tu web justo después de subir el archivo
  4. ¿Algo falla? Restaura la copia: sobrescribe el archivo con tu copia de seguridad

Problemas habituales

Error 500 tras un cambio

Hay un error de sintaxis en tu .htaccess. Restaura tu copia de seguridad o elimina el último cambio.

Bucle de redirecciones

Tu redirección apunta a una URL que vuelve a redirigir. Revisa el orden de tus reglas.

Las reglas no funcionan

Puede que mod_rewrite no esté activo. O tu servidor es nginx (que no usa .htaccess).

Atención: nginx no usa .htaccess

.htaccess solo funciona en servidores Apache. Nginx tiene su propio sistema de configuración. Si tu web está en nginx, tendrás que pedir al administrador del servidor que haga los cambios.

Preguntas frecuentes

¿Puedo tener un .htaccess por carpeta?

Sí, cada carpeta puede tener su propio .htaccess, que sobrescribe al de la carpeta superior.

¿Cómo sé si mi servidor es Apache?

Mira tu panel de hosting o pregunta a tu proveedor. O revisa las cabeceras del servidor de tu web.

¿.htaccess es lento?

Un poco. Apache tiene que leer el archivo en cada petición. Para webs con mucho tráfico, la configuración del servidor es más rápida.

Hosting en Theory7

Trucos de .htaccess más usados

Forzar HTTPS en lugar de HTTP

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Todos los visitantes se envían automáticamente a la versión segura de tu web.

Añadir o quitar www

Añadir (de sin www a www):

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Quitar (de www a sin www):

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Páginas de error personalizadas

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Muestra tu propia página en lugar del error estándar del servidor.

Configurar la caché del navegador

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>

Los navegadores guardan los archivos durante más tiempo, lo que hace tu web más rápida para los visitantes que vuelven.

Bloquear el hotlinking

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

Evita que otros carguen tus imágenes directamente y consuman tu ancho de banda.

.htaccess y WordPress

WordPress usa .htaccess para los enlaces permanentes. Este es el contenido predeterminado:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

No modifiques este bloque a mano: WordPress lo gestiona por sí mismo. Añade tus propias reglas encima o debajo.

Editar .htaccess de forma segura

  1. Haz primero una copia de seguridad de tu .htaccess actual
  2. Prueba los cambios en local o en un entorno de staging
  3. Sube el archivo y pruébalo al instante: los errores de sintaxis dejan tu web inaccesible
  4. Si hay problemas: restaura la copia de seguridad

Errores habituales

500 Internal Server Error

Error de sintaxis en tu .htaccess. Revisa las reglas con cuidado. Un solo error tipográfico lo rompe todo.

Bucle de redirecciones

Tus reglas se remiten unas a otras. Busca RewriteRules que entren en conflicto.

El archivo no se ve

.htaccess es un archivo oculto (empieza por un punto). Activa "mostrar archivos ocultos" en tu cliente FTP.

Técnicas avanzadas de .htaccess

Mejorar la seguridad

Bloquea el acceso a los archivos sensibles:

<FilesMatch "^(wp-config\.php|\.htaccess|readme\.html)$">
Order Allow,Deny
Deny from all
</FilesMatch>

Desactiva el listado de directorios:

Options -Indexes

Protégete contra el clickjacking:

Header always set X-Frame-Options "SAMEORIGIN"

Optimización del rendimiento

Activa la compresión:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css
AddOutputFilterByType DEFLATE application/javascript application/json
</IfModule>

Reescribir URL

Redirige una URL antigua a una nueva:

Redirect 301 /oude-pagina https://example.com/nieuwe-pagina

Todas las peticiones a una página de mantenimiento (excepto tu IP):

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !^/onderhoud\.html$
RewriteRule ^(.*)$ /onderhoud.html [R=302,L]

Alternativas a .htaccess

Nginx

En los servidores Nginx, .htaccess no funciona. Allí la configuración va en nginx.conf o en los bloques de servidor (server blocks). Muchas reglas son parecidas, pero con otra sintaxis.

Con plugins

Algunas funciones también se pueden gestionar con plugins de WordPress, como las redirecciones (plugin Redirection) o las cabeceras de seguridad (varios plugins de seguridad).

.htaccess es un archivo de configuración potente que ofrece muchas posibilidades. Experimenta con cuidado, haz copias de seguridad y tendrás una herramienta flexible para optimizar tu página web.

El archivo .htaccess es uno de los archivos de configuración más potentes de un servidor web Apache. Con unas pocas líneas de código puedes cambiar a fondo el comportamiento de tu página web: desde la reescritura de URL hasta la restricción de acceso, desde la caché hasta la seguridad.

Reglas de .htaccess más usadas

Algunas reglas útiles que puedes añadir a tu .htaccess:

  • Redirección de HTTP a HTTPS para una conexión segura
  • Bloquear el acceso a direcciones IP concretas
  • Configurar la caché del navegador para reducir los tiempos de carga
  • Desactivar el listado de directorios para mejorar la seguridad
  • Configurar páginas de error 404 personalizadas

Cuidado con los cambios

El archivo .htaccess es delicado: un pequeño error tipográfico puede tumbar toda tu página web. Por eso, haz siempre una copia de seguridad antes de hacer cambios. Si tu web deja de funcionar después de un cambio, puedes restaurar el archivo de copia de seguridad por FTP.

Prueba siempre los cambios en un entorno de staging o en un servidor de pruebas antes de pasarlos a producción. Y documenta lo que añades, para saber más adelante por qué están ahí determinadas reglas.

Alternativa: NGINX

Ten en cuenta que .htaccess solo funciona en servidores Apache. Si tu hosting usa NGINX, tendrás que hacer la configuración en otro sitio. Pregunta a tu proveedor de hosting cómo aplicar ajustes similares en un servidor NGINX.

El archivo .htaccess te da control sobre tu servidor web Apache. Desde redirecciones hasta cabeceras de caché, las posibilidades son infinitas. Ten cuidado con los cambios: un error tipográfico puede dejar tu web inaccesible. Prueba siempre en una copia y ten a mano una copia de seguridad. Con algo de práctica, .htaccess se convierte en una herramienta imprescindible para gestionar tu web. Estudia las posibilidades y aplícalas donde haga falta.

Con .htaccess decides cómo sirve Apache tu página web. Desde redirecciones sencillas hasta reglas de reescritura complejas: las posibilidades son enormes. Tómate tu tiempo para aprender la sintaxis y experimenta en un servidor de pruebas. Una configuración sólida de .htaccess hace que tu web sea más rápida, más segura y más fácil de encontrar. Es una habilidad que todo webmaster debería dominar.

Cada comando de .htaccess que aprendes te convierte en mejor webmaster. Empieza por lo básico y amplía tus conocimientos paso a paso. Redirecciones, cabeceras de caché, reglas de seguridad: todas son habilidades valiosas. Documenta tu configuración para saber más adelante por qué están ahí determinadas reglas. Un archivo .htaccess bien mantenido es señal de una gestión web profesional.

En Theory7 usamos servidores web LiteSpeed compatibles con .htaccess. ¿Necesitas ayuda con tu configuración? Nuestro equipo de soporte te ayuda encantado.

Empieza ya con .htaccess.

Aprende hoy a dominar .htaccess.

Resumen de las reglas más usadas del archivo htaccess

El archivo htaccess ofrece infinidad de opciones para configurar tu página web. A continuación tienes un resumen práctico de las reglas más usadas que puedes aplicar en tu archivo htaccess.

FunciónRegla del archivo htaccessUso
Redirección de HTTP a HTTPSRewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Forzar una conexión segura
De www a sin wwwRewriteRule ^(.*)$ https://example.com/$1 [R=301,L]Definir la URL canónica
Página 404 personalizadaErrorDocument 404 /404.htmlMostrar tu propia página de error
Bloquear el listado de directoriosOptions -IndexesOcultar el contenido de las carpetas
Compresión GzipAddOutputFilterByType DEFLATE text/htmlTiempos de carga más rápidos
Caché del navegadorExpiresByType image/jpeg "access plus 1 year"Guardar en caché los archivos estáticos
Bloquear una IPDeny from 123.456.789.0Frenar el tráfico no deseado
Protección contra hotlinkingRewriteRule \.(jpg|png|gif)$ - [F]Proteger las imágenes

Consejos para editar tu archivo htaccess de forma segura

Antes de hacer cambios en tu archivo htaccess, lo sensato es hacer siempre primero una copia de seguridad. Un error en el archivo htaccess puede dejar inaccesible toda tu página web. Prueba los cambios, a ser posible, primero en un entorno de pruebas antes de aplicarlos en tu web en producción.

El archivo htaccess es un archivo de configuración potente, pero también delicado. Usa siempre la sintaxis correcta y comprueba después de cada cambio si tu página web sigue funcionando bien. Si tienes dudas, lo mejor es que edite el archivo htaccess alguien con experiencia técnica.

Archivo htaccess: optimización del rendimiento

El archivo htaccess es una herramienta potente para mejorar el rendimiento de tu página web sin modificar los archivos de configuración del servidor.

Configurar la caché del navegador

Con el archivo htaccess puedes configurar cabeceras de caché del navegador que le indican cuánto tiempo puede guardar los archivos en local. Los archivos estáticos, como imágenes, CSS y JavaScript, cambian poco y pueden guardarse en caché durante meses. Los archivos HTML cambian más a menudo y reciben un tiempo de caché más corto. Si configuras bien la caché del navegador, los visitantes que vuelven cargan tu página web mucho más rápido, porque no tienen que volver a descargar muchos archivos.

Activar la compresión GZIP

La compresión GZIP reduce entre un 60 y un 80 % el tamaño de los archivos que se envían al navegador. Así se reduce la cantidad de datos que circulan por la red y el tiempo de carga se acelera bastante. Con el archivo htaccess activas la compresión para archivos de texto como HTML, CSS, JavaScript, XML y JSON. Los archivos binarios, como imágenes y vídeos, no se benefician de la compresión GZIP porque ya están comprimidos.

Resumen de ajustes de rendimiento

AjusteEfectoTiempo de cachéTipo de archivo
Caché del navegador para imágenesVisitas repetidas más rápidas1 añoJPG, PNG, WebP, SVG
Caché del navegador para CSS/JSMenos descargas1 mesCSS, JavaScript
Caché del navegador para HTMLContenido más actualizadoDe 1 hora a 1 díaHTML
Compresión GZIPEntre un 60 y un 80 % más pequeñoNo aplicableArchivos de texto
Desactivar los ETagsMenos peticionesNo aplicableTodos los archivos

Archivo htaccess: errores frecuentes y soluciones

Un error en tu archivo htaccess puede dejar inaccesible toda tu página web. Conoce los errores más frecuentes y cómo evitarlos.

500 Internal Server Error

El error más habitual después de editar un archivo htaccess es el 500 Internal Server Error. Significa que hay un error de sintaxis en el archivo. Haz siempre una copia de seguridad de tu archivo htaccess original antes de hacer cambios. Si te aparece un error 500, restaura el archivo de copia de seguridad por FTP. Añade los cambios paso a paso y comprueba después de cada uno si la página web sigue funcionando bien.

Cómo evitar los bucles de redirecciones

Las redirecciones mal configuradas pueden provocar bucles infinitos en los que el navegador se redirige sin fin. El resultado es el mensaje de error de que la página te ha redirigido demasiadas veces. Revisa tus reglas de redirección en busca de referencias circulares. Usa condiciones RewriteCond para evitar que las reglas se apliquen a URL que ya cumplen los criterios deseados.

Lee también nuestro artículo detallado htaccess, la guía completa para ver configuraciones aún más avanzadas.

Archivo htaccess: preguntas frecuentes

Al trabajar con el archivo htaccess surgen muchas veces las mismas preguntas. A continuación respondemos a las más habituales con explicaciones claras.

¿Dónde encuentro el archivo htaccess?

El archivo htaccess se encuentra en el directorio raíz de tu página web, en la misma carpeta que tu archivo index.php o index.html. Como el nombre del archivo empieza por un punto, es un archivo oculto que por defecto no se ve en la mayoría de los gestores de archivos. En FileZilla activas la visualización de archivos ocultos en Servidor, Forzar mostrar archivos ocultos. En el gestor de archivos de DirectAdmin, el archivo se ve por defecto.

¿Puedo tener varios archivos htaccess?

Sí, puedes colocar un archivo htaccess en cualquier directorio de tu página web. El archivo htaccess de una subcarpeta sobrescribe, para ese directorio concreto, las reglas del archivo htaccess de la carpeta superior. Esto resulta útil para aplicar reglas concretas a determinadas secciones de tu web, como la protección con contraseña de una carpeta de administración o reglas de caché distintas para un directorio de medios.

Preguntas frecuentes

  • ¿Es seguro editar htaccess? Sí, siempre que hagas una copia de seguridad antes de hacer cambios. Un error puede dejar tu página web inaccesible, pero se soluciona fácilmente restaurando el archivo de copia de seguridad.
  • ¿Funciona htaccess en todos los servidores? Htaccess solo funciona en servidores web Apache. Nginx y LiteSpeed usan otro sistema de configuración, aunque LiteSpeed ofrece una compatibilidad limitada con htaccess.
  • ¿Cómo pruebo mis reglas de htaccess? Existen comprobadores de htaccess online en los que puedes introducir tus reglas y probarlas sin ponerlas en tu servidor en producción. Prueba siempre en un entorno de staging antes de aplicar cambios en producción.
  • ¿Puedo usar htaccess para ajustes de PHP? Sí, puedes configurar varios ajustes de PHP con htaccess, como los límites de memoria, el tamaño máximo de subida y el nivel de notificación de errores.

Archivo htaccess: resumen y configuraciones esenciales

El archivo htaccess es una herramienta potente pero sencilla para configurar tu página web. Aquí resumimos las configuraciones esenciales que debería tener cualquier web.

Las cinco configuraciones imprescindibles

Toda página web debería tener al menos estas cinco configuraciones en el archivo htaccess. Primero: una redirección de HTTP a HTTPS para tener conexiones seguras. Segundo: cabeceras de caché del navegador que mejoran la velocidad de carga para los visitantes que vuelven. Tercero: compresión GZIP, que reduce entre un 60 y un 80 % el tamaño de los archivos. Cuarto: desactivar el listado de directorios para que los visitantes no puedan navegar por tus carpetas. Quinto: proteger los archivos sensibles bloqueando el acceso directo.

Mantenimiento y documentación

Trata tu archivo htaccess como un documento de configuración importante. Añade a cada regla o bloque un comentario que describa qué hace la regla y cuándo se añadió. Haz una copia de seguridad antes de hacer cambios. Prueba cada cambio al instante en tu navegador. Guarda un historial de versiones para poder volver a una configuración anterior si surgen problemas. Con esta disciplina, tu archivo htaccess se mantiene ordenado, comprensible y fácil de mantener a largo plazo.

Archivo htaccess: optimización para CMS concretos

El archivo htaccess necesita configuraciones específicas según el CMS que uses. En WordPress, el archivo htaccess predeterminado contiene las reglas de reescritura de los enlaces permanentes, pero puedes ampliarlo con cabeceras de caché y reglas de seguridad. En Joomla ya vienen incluidas las reglas estándar de URL SEF, pero conviene añadir reglas extra para bloquear los vectores de ataque más comunes. En una aplicación PHP a medida, escribes tú mismo todas las reglas de enrutamiento de URL en el archivo htaccess. Asegúrate de que las reglas específicas de tu CMS no entren en conflicto con tus propias reglas personalizadas definiendo el orden con cuidado.

Errores frecuentes en el archivo htaccess

Evita los errores más frecuentes al editar tu archivo htaccess. No olvides nunca hacer una copia de seguridad antes de aplicar cambios. Comprueba que RewriteEngine On está activado antes de añadir reglas de reescritura. Evita los bucles de redirecciones infinitos formulando tus condiciones con cuidado. Prueba cada cambio justo después de aplicarlo y comprueba tanto el funcionamiento como el rendimiento de tu página web.