Generador de Redirecciones

¿Qué es una redirección?

Una redirección — también llamada redirección de URL, o simplemente "redirect" — envía automáticamente a visitantes y buscadores de una URL a otra, sin que tengan que hacer clic en un nuevo enlace. El servidor responde con un código de estado 3xx y una cabecera Location que apunta al destino, y el navegador la sigue de inmediato, antes de renderizar nada de la URL original. Las redirecciones son la forma estándar de manejar una página que se movió, un cambio de dominio, o asegurarse de que cada variante de una URL — con o sin www, por http o https — termine en una sola dirección canónica.

Cómo funciona este generador

Elige un tipo de redirección, completa las rutas o dominios involucrados, y esta herramienta escribe la configuración correspondiente tanto para un bloque de servidor de Nginx como para un archivo .htaccess de Apache. Todo se ejecuta en tu navegador — nada se envía a un servidor.

¿Dónde va cada fragmento de código?

Códigos y tipos de redirección: 301 vs 302 vs 307 vs 308

El código de estado 3xx que se envía con una redirección le indica a navegadores y buscadores qué tipo de movimiento es — permanente o temporal, y si el método de la solicitud debe mantenerse igual:

CódigoSignificado
301Redirección permanente. Los buscadores transfieren las señales de ranking a la nueva URL; los navegadores pueden cachearla a largo plazo. Úsala para URLs que se movieron definitivamente.
302Redirección temporal. Indica que el movimiento no es permanente — los buscadores siguen indexando la URL original. Úsala para pruebas A/B, páginas de mantenimiento, o movimientos de corta duración.
307Redirección temporal que preserva explícitamente el método HTTP y el cuerpo de la solicitud (un POST sigue siendo un POST). La versión moderna y correcta según la especificación del 302 para solicitudes que no son GET.
308Redirección permanente que preserva explícitamente el método HTTP y el cuerpo — el equivalente al 307 dentro del par 301/302.

Preguntas frecuentes

¿Esta herramienta aplica la redirección por mí?

No — solo genera el texto de configuración. Todavía tienes que pegarlo en tu archivo de configuración de Nginx o Apache y recargar/reiniciar el servidor web para que tenga efecto.

¿Cuál es la diferencia entre una redirección y una regla de reescritura?

Una redirección le envía al navegador un código de estado 3xx y una nueva URL — la barra de direcciones cambia y el navegador hace una nueva solicitud, que es lo que genera cada regla de esta página. Una regla de reescritura (rewrite) es distinta: cambia qué archivo o backend sirve el servidor internamente, pero la barra de direcciones y el código de estado devuelto al navegador (normalmente 200) no cambian. La directiva rewrite de Nginx y la RewriteRule de Apache pueden hacer cualquiera de las dos cosas — agrega una bandera de redirección como permanent o [R=301] y redirige; déjala fuera y reescribe en silencio en su lugar.

¿Por qué importa la opción "wildcard" (comodín)?

Sin ella, la regla coincide solo con una ruta exacta (por ejemplo, /pagina-vieja). Con ella, la regla coincide con todo lo que esté debajo de una ruta (por ejemplo, /seccion-vieja/lo-que-sea/aqui) y traslada la parte restante de la URL a la nueva ubicación — útil cuando estás moviendo toda una sección de un sitio en vez de una sola página.

¿Por qué mi redirección necesita preservar la query string o el método?

Una redirección simple no elimina nada por defecto en estos fragmentos — el $request_uri de Nginx y los grupos de captura de wildcard incluyen la query string. Si una solicitud es un envío de formulario (POST) que debe seguir siendo POST después de redirigir, usa 307 u 308 en vez de 301/302, que algunos clientes convierten silenciosamente en un GET.

¿Necesito mod_rewrite para una redirección simple de ruta en Apache?

No — una redirección de ruta exacta única solo necesita la directiva Redirect de mod_alias, habilitada por defecto en la mayoría de las instalaciones de Apache. Las redirecciones con wildcard, forzar HTTPS, y reescrituras de www/dominio usan mod_rewrite, que es común pero no siempre está habilitado — verifícalo con apache2ctl -M | grep rewrite.

¿Esto es lo mismo que el "reenvío de sitio web" de mi registrador de dominios?

No exactamente. Muchos registradores (GoDaddy, Namecheap, y otros) ofrecen una función de reenvío de dominio o sitio web con un clic que hace algo similar — enviar visitantes a una nueva URL — pero se ejecuta en los propios servidores del registrador, sin control sobre el tipo de redirección o a qué rutas aplica. Las reglas generadas aquí se ejecutan en tu propio servidor Nginx o Apache, así que son más precisas (rutas exactas, wildcards, códigos de estado específicos), pero requieren que tengas acceso a la configuración de ese servidor.

Quiero una redirección HTML en vez de una del servidor — ¿tienen eso?

Eso es un meta refresh — una etiqueta HTML <meta http-equiv="refresh"> que redirige la página después de que carga, sin necesidad de configuración de servidor. Generalmente es la opción más débil (ve nuestra guía de meta refresh para saber por qué), pero si una redirección del lado del servidor genuinamente no está disponible para ti, ahí es donde empezar en su lugar.