Formato nuevo
Redirects 301 en .htaccess: reglas habituales
En Apache, `.htaccess` se usa a menudo para 301 permanentes: unificar espejos, mover una URL, quitar colas sobrantes. Una regla mala puede tumbar el sitio — edita con backup.
Abajo: escenarios típicos y cautelas. La teoría de códigos 301/302 vive en la pieza de redirects; nginx usa otra sintaxis.
Cuándo hace falta un 301
Cambios de slug, mudanzas de sección, unificación http→https y www/sin-www, migración de dominio. Meta — una dirección canónica sin cadenas.
Señales de que toca:
- URLs viejas en Webmaster con 404 tras una mudanza
- dos espejos en el índice
- enlaces externos a paths desfasados
Reglas típicas
Activa `RewriteEngine On` y escribe condiciones + `RewriteRule` con `[R=301,L]`. La sintaxis exacta depende del directorio y de `RewriteBase`.
Ideas de ejemplo (no copies a ciegas): forzar https; www→sin-www (o al revés); una URL de página a un path nuevo; `domain-old` → `domain-new` conservando el path.
Antes de ir a live:
- backup del `.htaccess` actual
- probar en staging
- revisar cadenas (un salto)
- verificar con `curl -I` o similar
Cuándo no hace falta un redirect
No tires toda la basura a la home — difumina el sentido. No dupliques 301 y canonical en URLs en conflicto sin necesidad. No dejes cadenas A→B→C.
Errores:
- loops de redirect
- un 302 temporal para siempre
- editar producción sin backup
- HTTP olvidado tras activar HTTPS
Prepara un mapa de migración de URLs
Antes de una mudanza masiva, haz una tabla: URL vieja, URL nueva, motivo, tipo de respuesta, estado del check. Incluye páginas importantes de analytics, sitemaps XML, enlaces externos e informes de Webmaster — no solo las URLs que recuerdas fácil.
Mapea páginas por significado. Una ficha de producto va a un reemplazo o categoría relevante; un artículo a una pieza actualizada del mismo tema. Si no hay equivalente, un 404 o 410 honesto gana a un redirect a la home.
En el mapa de migración incluye:
- URL vieja y destino completos
- propósito de la regla — dominio, sección o página suelta
- código 301 esperado
- fecha de deploy y resultado del test
Cuida el orden de reglas y el contexto
`.htaccess` corre en contexto de directorio, así que los patrones de path y el arranque de reglas pueden diferir de un config de virtual-host. No pegues ejemplos del artículo al pie de la letra hasta revisar document root, reglas actuales del CMS y `AllowOverride`.
Pon primero las reglas generales de protocolo/host canónico, luego mudanzas puntuales. Cada condición debe quedar clara: mezclar www, HTTPS, slash y reglas del CMS sin probar suele crear un salto extra o un loop infinito.
Ten especial cuidado con:
- reglas que redirigen todo el dominio
- regex con matches amplios
- ajustes duplicados en un CDN o panel de hosting
- reglas automáticas del CMS y plugins
Prueba tras cada cambio
Aplica una regla primero en staging o en un grupo pequeño de URLs. Revisa dirección origen, destino, variantes de query-string, HTTP y HTTPS, www y sin-www. El resultado debe ser un salto a la página canónica final.
Tras publicar, vigila códigos de estado en un crawler y Webmaster. Arregla cadenas A→B→C: la dirección final debe quedar dicha de inmediato. No uses un redirect permanente como experimento temporal — navegadores y buscadores pueden cachearlo.
Checklist de aceptación:
- sin loops ni varios redirects en secuencia
- parámetros conservados solo donde hace falta
- el destino devuelve 200 y es rastreable
- URLs viejas importantes chequeadas de forma selectiva y en lote
FAQ
¿Dónde vive .htaccess?
Suele estar en la raíz del sitio (o el directorio del virtual host). No todo hosting activa `AllowOverride`.
¿Estas reglas funcionan en nginx?
No tal cual. En nginx escribes `return 301` / `rewrite` en el config del server.
¿Los ejemplos deben usar 301 o 302?
Para mudanzas permanentes — 301. Promos temporales — 302/307.
¿Se pueden pegar reglas en lote?
Con cuidado: el orden importa, los loops son fáciles. Prueba de una en una.
¿Debo redirigir en lugar de borrar una página?
Si hay una URL cercana en significado — sí. Si el tema desapareció — mejor 404/410 que mandar todo a la home.
¿Cómo compruebo el código de estado?
Abre headers de respuesta vía DevTools, `curl -I` o un checker. Prueba la URL original sin redirect cacheado del navegador.
¿.htaccess con reglas 301 a ciegas?
Montamos https/www y mudanzas con backup y un salto — sin loops ni todo a la home.
Hablar del proyecto