Pegue las URL antiguas y nuevas y obtenga reglas 301 para .htaccess o Nginx, comprobadas contra bucles
Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.Una redirección 301 indica a los navegadores y a los buscadores que una página se ha movido de forma definitiva. En el .htaccess de Apache, RewriteRule ^old-page$ /new-page [L,R=301] envía /old-page a /new-page; en Nginx, location = /old-page { return 301 /new-page; } hace lo mismo. Use 302 o 307 para un traslado temporal y 410 para una página eliminada a propósito.
Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés
Pegue una redirección por línea en el cuadro Redirecciones: la ruta antigua, un espacio y luego la ruta o URL nueva.
Elija Apache o Nginx y active Forzar HTTPS o elija con www o sin www si también lo desea.
Corrija cualquier línea marcada como bucle y acepte la propuesta de acortar las cadenas para que cada visitante haga un solo salto.
Haga clic en Copiar o Descargar y añada las reglas al principio de su archivo .htaccess o en su bloque server.
Pegue una redirección por línea, la dirección antigua y luego la nueva, y las reglas se escriben mientras escribe. Las direcciones antiguas pueden ser rutas o URL completas copiadas de un navegador o de una exportación de analítica; las tabulaciones, comas y flechas también funcionan, así que un par de columnas de una hoja de cálculo se pega directamente. Añada un código al final de una línea para cambiar el predeterminado, o escriba 410 en lugar de una dirección nueva para una página que ya no existe.
Qué código.
| Código | Significado | Úselo para |
|---|---|---|
| 301 | Movido permanentemente | Páginas renombradas, un dominio nuevo, HTTPS |
| 308 | Permanente, mismo método | API y formularios que usan POST |
| 302 / 307 | Temporal | Campañas, mantenimiento, pruebas A/B |
| 410 | Eliminado | Páginas eliminadas a propósito |
Apache. Cada regla usa mod_rewrite. La directiva Redirect, más sencilla, compara prefijos, por lo que Redirect /shop /store también captura /shopping, y mezclar los dos módulos los ejecuta en un orden que sorprende a muchos. Los patrones están anclados y escapados, así que un punto en old.html solo coincide con un punto. Una dirección antigua con cadena de consulta, como /products?id=42, recibe su propia RewriteCond y la consulta se elimina de la dirección nueva.
Nginx. Cada página recibe un bloque exacto location = con return. HTTPS y la elección de www reciben sus propios bloques server, que necesitan su dominio.
Comprobaciones. Una regla que envía una página a sí misma, directamente o a través de otras reglas, es un bucle y se omite. Una regla que apunta a otra página redirigida es una cadena; un clic la hace apuntar directamente a la página final, de modo que visitantes y rastreadores hacen un salto en lugar de varios. Una dirección antigua repetida se señala, porque solo la primera regla llegaría a ejecutarse.
HTTPS y el host se resuelven en un solo salto, antes de las reglas de página. Pruebe primero con 302: los navegadores recuerdan una 301 durante mucho tiempo.
Todo funciona en su navegador; nada de lo que pega se envía a ningún sitio.
Añada RewriteEngine On una vez y luego una línea por página: RewriteRule ^old-page$ /new-page [L,R=301]. En .htaccess el patrón no lleva barra inicial, el acento circunflejo y el dólar hacen que coincida solo con esa página exacta, y R=301 hace que el traslado sea permanente. Coloque las reglas cerca del principio del archivo, antes de cualquier bloque de WordPress o de un framework.
301 y 308 son permanentes: los buscadores trasladan el posicionamiento de la página antigua a la dirección nueva. 302 y 307 son temporales, por lo que la dirección antigua sigue indexada. 307 y 308 además obligan a los navegadores a repetir el mismo método, como POST, mientras que 301 y 302 permiten cambiar a GET. La mayoría de los traslados de páginas deberían usar 301.
Combine las condiciones para que el visitante haga un solo salto: redirija cuando HTTPS esté desactivado o el host empiece por www, y envíelo a https más el host sin www. Este generador escribe exactamente eso con tres líneas RewriteCond y una RewriteRule, o un par de bloques server para Nginx, en lugar de dos redirecciones separadas seguidas.
Un bucle se produce cuando una regla envía una página a una dirección que la misma u otra regla redirige de vuelta. Las causas habituales son redirigir /page a /page/ mientras otra regla quita la barra, o forzar HTTPS detrás de Cloudflare Flexible SSL, donde el servidor siempre ve HTTP. Esta herramienta rechaza las reglas que forman un bucle e indica la línea.
RewriteRule nunca ve la cadena de consulta, así que compárela primero con una RewriteCond: RewriteCond %{QUERY_STRING} ^id=42$, y luego la RewriteRule para la ruta. Añada el indicador QSD para que ?id=42 no se copie en la dirección nueva. Si pega aquí /products?id=42 /products/blue-mug, se escriben ambas líneas para Apache, o una prueba if ($args) para Nginx.
Cada salto adicional cuesta un poco de tiempo, y Google sigue como máximo 10 saltos antes de rendirse, así que las cadenas desperdician esfuerzo de rastreo y ralentizan a los visitantes. Tras una segunda migración del sitio, las direcciones antiguas suelen apuntar a páginas que se redirigieron de nuevo. Este generador detecta cada cadena y reescribe la regla para que apunte directamente a la página final con un clic.
Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.
¿Sigue sin resolverlo? Pregunte sobre Generador de redirecciones .htaccess y cualquiera que lo sepa puede responder. No se necesita cuenta.