Es un archivo diminuto que vive en tu hosting y que manda más que casi cualquier otra cosa de tu web. Con él se hacen redirecciones, se fuerza el candado de seguridad o se bloquea a quien molesta. Y con él también se tumba una web entera con una letra mal puesta.
Qué es, en llano
El .htaccess es un archivo de texto con instrucciones para el servidor.
Se lee antes de que tu web se muestre, y en cada visita. Ahí le dices
cosas como "a quien pida esta dirección, mándalo a esta otra" o "esta carpeta pide
contraseña".
El punto del principio no es un error de escritura: en los servidores, un archivo que empieza por punto es un archivo oculto. Por eso mucha gente jura que no lo tiene, cuando en realidad está ahí y no lo ve. En tu gestor de archivos busca la opción mostrar archivos ocultos y aparecerá.
Una coma de más en este archivo no da un aviso ni un error pequeño: deja toda tu web con un error 500, en blanco, al instante y para todo el mundo. No hay medias tintas. Nunca lo toques sin haberte descargado antes una copia del archivo tal y como está.
Para qué se usa de verdad
| Para qué | Qué consigues |
|---|---|
| Redirecciones | Cambias una página de sitio y quien tenga el enlace viejo llega igual, sin ver un error. Google también. |
| Forzar el candado (HTTPS) | Aunque alguien entre por la versión insegura, se le lleva a la segura. |
| Con www o sin www | Eliges una sola forma. Tener las dos vivas confunde a los buscadores. |
| Página de error propia | En vez del error feo del servidor, tu página con tu diseño. |
| Contraseña en una carpeta | Proteger una zona en pruebas antes de abrirla al público. |
| Bloquear | Cerrar el paso a direcciones que te están atacando o rastreando de más. |
| Que la web cargue más rápido | Decirle al navegador del visitante que se guarde las imágenes en vez de pedirlas cada vez. |
Lo que casi nadie sabe: puede que no te funcione
El .htaccess es cosa de un tipo de servidor concreto (Apache, y también
LiteSpeed, que lo entiende igual). En otros muy usados, como Nginx, este
archivo se ignora por completo. Puedes escribir en él lo que quieras,
que no pasará absolutamente nada.
Es una de las causas más frecuentes de "he puesto la redirección y no funciona". No está mal escrita: es que ese servidor ni lo lee. Si no sabes cuál tienes, pregúntanos y te lo decimos en un minuto.
Ejemplos que puedes copiar
Van sobre la marca tudominio.com. Cámbiala por la tuya.
Forzar el candado de seguridad
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Mandar una página vieja a una nueva
Redirect 301 /pagina-vieja.html https://tudominio.com/pagina-nueva/
Ese 301 significa "esto se ha mudado para siempre". Es el que quieres casi siempre, porque le traspasa a la página nueva el valor que la vieja tenía en Google. Un 302 dice "es temporal" y no traspasa nada.
Tu propia página de error 404
ErrorDocument 404 /pagina-de-error/
Bloquear una dirección concreta
<RequireAll>
Require all granted
Require not ip 203.0.113.45
</RequireAll>
Si tienes WordPress, léelo dos veces
WordPress usa este archivo para que tus direcciones sean bonitas
(/quienes-somos/ en vez de /?p=27). Y tiene una costumbre que
pilla a todo el mundo:
- No escribas nada entre
# BEGIN WordPressy# END WordPress. WordPress reescribe ese trozo cuando le da la gana y se lleva por delante lo que hayas metido. - No amontones plugins de caché, de seguridad y de redirecciones. Cada uno escribe su parte y acaban peleándose entre ellos.
- Escribe siempre encima del bloque
# BEGIN WordPress, y deja una línea en blanco. - Si la web se cae después de tocarlo, sube la copia que te guardaste y todo vuelve al instante.
- Si no tienes copia y ya has roto la web, borra el archivo entero: la mayoría de webs vuelven a cargar, aunque las direcciones bonitas dejen de ir. Luego se reconstruye.
Cómo tocarlo sin sustos
- Entra en el gestor de archivos de tu hosting o por SFTP.
- Activa ver archivos ocultos.
- Descárgate el archivo a tu ordenador. Esa es tu red de seguridad.
- Haz un solo cambio. Uno.
- Guarda y abre tu web en una ventana nueva del navegador, sin caché.
- ¿Funciona? Siguiente cambio. ¿Se ha roto? Sube la copia y ya está.
Nunca hagas cinco cambios de golpe. Si algo falla, no sabrás cuál fue y acabarás deshaciendo todo a ciegas.
Si tu web la llevamos nosotros
Esto no lo tocas tú. Nos dices qué quieres conseguir ("que esta página lleve a esta otra", "que la zona de pruebas pida contraseña") y lo montamos nosotros, con copia previa y comprobando después que la web sigue en pie. Tú no tocas nada técnico y no hay "lo cambio y a ver si peta".
Preguntas frecuentes
¿Dónde está el archivo .htaccess?
En la carpeta raíz de tu web, la misma donde vive el index.php. Suele
llamarse public_html, httpdocs o www según el
panel. Si no lo ves, no es que no exista: activa mostrar archivos ocultos.
No tengo ninguno. ¿Lo creo?
Puedes. Se crea un archivo de texto vacío llamado exactamente .htaccess,
con el punto delante y sin ninguna extensión detrás. Ojo con Windows, que a veces añade
un .txt invisible y entonces no funciona nada.
He tocado el archivo y ahora mi web da error 500. ¿Qué hago?
Deshaz el último cambio. Si no guardaste copia, renombra el archivo a
htaccess-roto y la web volverá a cargar en el acto. Perderás lo que hubiera
dentro (las direcciones bonitas de WordPress, por ejemplo), pero al menos la web estará
en pie mientras lo reconstruyes con calma.
¿Cuál es la diferencia entre una redirección 301 y una 302?
La 301 dice "me he mudado para siempre" y le traspasa a la dirección nueva la reputación que la vieja tenía en los buscadores. La 302 dice "es algo temporal" y no traspasa nada. Si estás cambiando de dirección de verdad, quieres una 301.
¿Puedo bloquear países o robots desde aquí?
Se puede, pero casi siempre es mala idea hacerlo así. Una lista larga de bloqueos en este archivo se lee en cada visita y acaba frenando tu propia web. Para eso están el cortafuegos del servidor o la capa que tengas delante, que filtran antes y sin coste. Si te está atacando alguien, dínoslo y lo cortamos por el sitio correcto.
¿Sirve para que mi web vaya más rápido?
Ayuda, pero es la última pieza, no la primera. Puedes decirle al navegador que se guarde las imágenes y los estilos para no pedirlos en cada visita, y eso se nota. Lo que no arregla es una web pesada, con veinte plugins o alojada en un sitio lento.
¿Y si mi hosting usa Nginx?
Entonces este archivo no hace nada, por mucho que escribas en él. Lo mismo se consigue, pero se configura en el servidor, no desde tu carpeta. Si tienes un plan gestionado con nosotros, nos lo pides y lo montamos.
- Qué es WordPress, si has llegado aquí por las direcciones bonitas.
- Acceso seguro a los archivos de tu web, para editar este archivo sin regalar las llaves de todo.
¿Se te ha quedado la web en blanco?
Si has tocado este archivo y ahora no carga nada, escríbenos y lo dejamos como estaba. Y si lo que necesitas es montar redirecciones bien hechas, también nos encargamos. Sin compromiso.
Cuéntanoslo