piapia123
es

Generador de código de redirección

Web

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Mover una dirección a otra se escribe de forma distinta en cada stack: una sola línea Redirect en un .htaccess de Apache, un bloque location en Nginx, una llamada header() en PHP y nada más que un meta refresh en alojamiento estático. Esta herramienta reúne las once formas: escribe el destino, elige un código de estado y copia las líneas a tu proyecto. El código de estado no está fijado: 301 es permanente y 302 es temporal, y esa diferencia importa a los buscadores, así que el valor que elijas aparece de verdad en el código generado, incluidos los cuatro destinos (ASP, ASP.NET, JSP, Java) cuyas líneas obvias solo pueden enviar 302. Donde algo no se puede expresar, un comentario en la salida lo dice: un meta refresh y window.location son saltos del lado del navegador, así que la respuesta HTTP sigue siendo 200 y eso no es una redirección.

Funciones

  • Once destinos: Apache (.htaccess), Nginx, HTML meta refresh, JavaScript, PHP, ASP clásico, ASP.NET, JSP, Java, Perl, Python
  • Estado 301, 302, 303, 307 o 308: cada destino usa de verdad el valor que elijas
  • ASP, ASP.NET, JSP y Java evitan Response.Redirect y sendRedirect, que solo pueden enviar 302, y fijan el estado y la cabecera Location explícitamente
  • Nginx distingue una coincidencia exacta (location = /old) de una de prefijo (escribe el origen como /old/*)
  • La salida de Apache usa una directiva Redirect de mod_alias en vez de una regla de mod_rewrite
  • Los signos de dólar y las arrobas de la salida de Perl se escapan, así que no se interpolan como variables
  • Varias URL de destino producen varias reglas, hasta veinte a la vez
  • Los espacios, comillas, barras invertidas y ángulos de la dirección se rechazan con una explicación en vez de producir sintaxis rota
  • El código generado lleva resaltado de sintaxis y se copia de una vez
  • Todo se ejecuta localmente en el navegador; el destino nunca se sube

Cómo se usa

  1. Pega la dirección de destino completa, una URL por línea si hay varias reglas
  2. Elige el entorno de destino
  3. Para Apache o Nginx, rellena también la ruta de origen: dónde vive la página antigua en tu sitio
  4. Elige un código de estado: 301 para un cambio de dominio o un traslado permanente, 302 para una página de campaña temporal
  5. Copia el código; los comentarios de arriba señalan en qué se diferencia de lo que pediste

Preguntas frecuentes

¿Debo usar 301 o 302?
Usa 301 para un cambio de dominio o un traslado permanente: los buscadores trasladan la dirección antigua a la nueva y la sustituyen en el índice. Usa 302 para páginas de campaña, de mantenimiento y pruebas A/B: la dirección antigua sigue siendo válida y el índice no se toca. Equivocarse no es simétrico: un 301 donde querías un 302 lo cachean navegadores e intermediarios mucho tiempo, y quien vuelva a la URL antigua puede que ya no vea el contenido original; al revés, un 302 donde querías un 301 solo significa que la señal de posicionamiento no se transfirió. Ante la duda, empieza con 302.
¿Por qué los destinos JavaScript y meta refresh no tienen código de estado?
Porque redirigen en el navegador: el servidor sigue respondiendo con una página HTTP 200 normal, y solo después el script o la etiqueta meta llevan al navegador. Para un rastreador o un intermediario no ha habido ninguna redirección: el código de estado y el comportamiento de caché siguen siendo los de la página original. Así que si el código de estado importa, usa un destino del lado del servidor (Apache, Nginx, PHP, ASP, JSP y compañía). Un meta refresh solo es apropiado para alojamiento estático, donde no tienes configuración de servidor que tocar. El código generado lleva un comentario que dice lo mismo.
¿Por qué la ruta de origen solo vale para Apache y Nginx?
Porque esos dos son los únicos destinos donde un archivo de configuración describe qué ruta va a dónde: la ruta de origen es la condición de la regla. Las salidas de PHP, ASP y JSP describen cómo debe responderse a una petición; si ese código llega a ejecutarse depende del archivo o la ruta donde lo pongas, y la herramienta no puede saberlo. Inventar un if solo produciría una conjetura.
¿Por qué los comentarios del código generado están en inglés?
Van a un archivo .php, .java o .cs, junto a código en ese lenguaje. Un comentario en otro idioma es el tipo de pequeña incoherencia que desconcierta a quien abra el archivo después, muy probablemente tú. Todo en esta página —opciones, errores, explicaciones— sigue el idioma de la interfaz.
¿Y los signos de interrogación, los caracteres no latinos y los espacios en la dirección?
Los signos de interrogación, los iguales, los ampersands y los caracteres no latinos están bien y aparecen tal cual en el código generado. Los espacios, comillas, barras invertidas y ángulos se rechazan, con el aviso de que primero hagas percent-encoding: esos caracteres se escapan de forma distinta en cada uno de los once lenguajes, y elegir uno por ti es una apuesta cuyo fallo aparece como un error de sintaxis en tu proyecto, no aquí.
¿Se sube la dirección a algún sitio?
No. La dirección y el código de estado solo se concatenan en la memoria del navegador; la página no hace ninguna petición y funciona sin conexión.

Herramientas relacionadas