Generador de redirecciones htaccess y Nginx
Añade tus URL antiguas y nuevas, marca las reglas generales del sitio que necesites, como forzar HTTPS o quitar www, y copia código de redirección listo para usar en Apache .htaccess, Nginx o Netlify y Cloudflare Pages. Los bucles y errores se señalan mientras escribes.
Última actualización:
Añadir en bloque desde una lista
Cómo usar Generador de redirecciones htaccess y Nginx
- Introduce tu dominio y marca las reglas generales que quieras, por ejemplo Forzar HTTPS y www → sin www.
- Añade reglas de redirección: la ruta antigua a la izquierda, la nueva ruta o URL completa a la derecha y el tipo de redirección. Termina una ruta con * para redirigir una carpeta entera.
- Pega una lista en Añadir en bloque si tienes muchas URL (un par 'antigua nueva' por línea).
- Pulsa Generar redirecciones y elige la pestaña de tu servidor: Apache .htaccess, Nginx o _redirects.
- Copia o descarga el código, súbelo a tu servidor y prueba algunas URL antiguas en una ventana privada del navegador.
Explicación de los códigos de estado de redirección
| Código | Significado | Caché del navegador | Método de la solicitud | Úsalo para |
|---|---|---|---|---|
| 301 | Moved Permanently (movido permanentemente) | Sí, a menudo durante mucho tiempo | Puede cambiar POST a GET | Páginas y sitios que se movieron definitivamente (la mayoría de redirecciones SEO) |
| 302 | Found (temporal) | No, salvo que se indique | Puede cambiar POST a GET | Movimientos temporales, páginas de mantenimiento, campañas |
| 307 | Temporary Redirect (redirección temporal) | No, salvo que se indique | Se conserva (POST sigue siendo POST) | Movimientos temporales de formularios y endpoints de API |
| 308 | Permanent Redirect (redirección permanente) | Sí | Se conserva (POST sigue siendo POST) | Movimientos permanentes de formularios y endpoints de API |
| 410 | Gone (eliminado) | Sí | No es una redirección | Contenido eliminado a propósito, para que los buscadores lo retiren antes que con un 404 |
Los códigos de estado se definen en el RFC 9110. En los buscadores, Google trata 301 y 308 como señales fuertes de que la nueva URL debe sustituir a la antigua en los resultados, y 302 y 307 como señales temporales más débiles.
Cómo leer las reglas de Apache generadas
Una regla como RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L] tiene tres partes:
- Patrón
^blog/(.*)$: una expresión regular que se compara con la ruta sin la barra inicial cuando se usa en .htaccess. Los puntos y otros caracteres especiales de tus rutas se escapan (old-page\.html), así que.solo coincide con un punto real. - Destino
/articles/$1:$1inserta lo que haya capturado el grupo(.*), así que/blog/2024/hellose convierte en/articles/2024/hello. - Indicadores:
R=301envía una redirección 301,Ldetiene el procesamiento de más reglas,NEevita que Apache vuelva a codificar%en el destino,Gresponde 410 Gone yNCen una condición ignora mayúsculas y minúsculas.
El /? opcional antes de $ hace que coincidan tanto /old-page como /old-page/. Una línea RewriteCond solo se aplica a la RewriteRule que está justo debajo.
Lista de comprobación de redirecciones para migrar un sitio
- Haz una lista de todas las URL antiguas de tu sitemap, tus analíticas y las páginas con backlinks, y asigna cada una a la página nueva más parecida en lugar de enviarlo todo a la página de inicio.
- Redirige en un solo salto. Evita cadenas como antigua → intermedia → nueva; cada salto añade latencia y diluye la señal. El generador señala las cadenas entre tus reglas.
- Mantén las redirecciones al menos un año, e idealmente para siempre, porque los marcadores y los enlaces externos siguen usando las URL antiguas.
- Actualiza los enlaces internos y el sitemap para que apunten directamente a las nuevas URL en lugar de depender de redirecciones.
- Prueba con
curl -I https://example.com/old-page: deberías verHTTP/2 301y un encabezadolocation:con la nueva URL.
Preguntas frecuentes
¿Qué tipo de redirección debo usar?
Usa 301 (permanente) cuando una página se ha movido definitivamente; los buscadores transfieren su posicionamiento a la nueva URL. Usa 302 o 307 para movimientos temporales, como mantenimiento o pruebas A/B. 308 es una redirección permanente que, como 307, conserva el método de la solicitud, algo importante para formularios y API que usan POST. Usa 410 Gone para páginas eliminadas a propósito sin sustituto.
¿Dónde pongo el código .htaccess?
Ponlo en el archivo .htaccess de la carpeta raíz de tu sitio web (a menudo public_html), por encima de cualquier regla añadida por un CMS como WordPress. El servidor debe usar Apache con mod_rewrite activado y permitir sobrescrituras (AllowOverride All). Guarda una copia de seguridad: un error de sintaxis en .htaccess provoca un error 500 en todo el sitio.
¿Cuál es la diferencia entre mod_rewrite y Redirect?
Redirect y RedirectMatch provienen de mod_alias y son simples y rápidas, pero no pueden comprobar el nombre de host ni HTTPS. RewriteRule de mod_rewrite sí puede, por eso los ajustes generales del sitio siempre la usan. Apache procesa las reglas de mod_rewrite antes que las de mod_alias, así que no dependas del orden entre ambas.
¿Cómo evito los bucles de redirección?
Un bucle ocurre cuando una URL se redirige a sí misma, directamente o a través de otras reglas, por ejemplo /a a /b y /b de vuelta a /a, o una regla de carpeta cuyo destino está dentro de la misma carpeta. El generador avisa de estos casos. Detrás de Cloudflare o de un balanceador de carga, usa la comprobación X-Forwarded-Proto para HTTPS, porque el propio servidor puede ver solo HTTP sin cifrar.
¿Se conservan las cadenas de consulta?
Con Conservar cadena de consulta activado, /old?id=5 redirige a /new?id=5. RewriteRule y Redirect de Apache conservan las cadenas de consulta por defecto, y el código de Nginx añade $is_args$args para hacer lo mismo. Desactiva la opción para eliminarlas en la salida de rewrite de Apache y de Nginx. Las redirecciones por ruta no admiten coincidencias con una cadena de consulta concreta.
¿Dónde van las reglas de Netlify y Cloudflare Pages?
Guarda el archivo como _redirects (sin extensión) en la carpeta que se publica, por ejemplo public o dist. Netlify también admite reglas a nivel de dominio, como de www a sin www; en Cloudflare Pages usa Bulk Redirects o Redirect Rules en el panel para eso, y en ambos HTTPS se aplica automáticamente.
¿Cómo pruebo mis redirecciones?
Abre la URL antigua en una ventana privada, o ejecuta curl -I https://example.com/old-page y comprueba el código de estado y el encabezado Location. Los navegadores almacenan en caché las redirecciones 301 de forma agresiva, así que prueba primero con 302 si no estás seguro y borra la caché después de cambiar una regla.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.