HTTP 301 Moved Permanently: qué significa
RESPUESTA DIRECTA
HTTP 301 Moved Permanently significa que al recurso solicitado se le ha asignado una redirección permanente a otra URL, normalmente identificada por la cabecera de respuesta `Location`. Un 301 se aplica a la solicitud específica que lo recibió; por sí solo no significa que todo el sitio web esté caído. Comprueba la URL exacta, el método HTTP, las cabeceras de respuesta y el destino de la redirección antes de cambiar la configuración.
Puntos clave
- HTTP 301 es una redirección permanente para un recurso solicitado; no indica automáticamente un fallo de todo el sitio.
- La cabecera
Locationnormalmente identifica adónde debe dirigirse el cliente; inspecciónala junto con las cabeceras relacionadas con la caché y la autenticación. - La resolución DNS y la negociación TLS pueden completarse correctamente incluso cuando la solicitud HTTP recibe una respuesta 301.
- Una redirección puede ser intencionada debido a URL canónicas, enrutamiento de HTTP a HTTPS, cambios de hostname, flujos de autenticación o enrutamiento de la aplicación.
- Los propietarios del sitio deben identificar si la respuesta la generó el servidor web, la aplicación, el reverse proxy, la CDN o el WAF antes de cambiar la configuración.
- Prueba la misma URL y el mismo método después de cualquier corrección y verifica que las rutas relacionadas sigan devolviendo los estados previstos.
Site Administrator
Qué significa este error y cómo reconocerlo
- Un navegador, cliente de API, servicio de monitorización o comprobador HTTP informa de
301 Moved Permanently. - Un navegador puede seguir automáticamente la redirección, mostrar una URL diferente o revelar un bucle de redirección si el destino vuelve a dirigir a la URL original.
- La respuesta puede incluir una cabecera
Locationque contiene el destino de la redirección. - El comportamiento puede producirse solo para una URL, hostname, método HTTP, estado de autenticación, agente de usuario o ruta de red concretos.
- El DNS puede resolver correctamente y TLS puede completarse correctamente porque el endpoint devolvió una respuesta HTTP.
- Los clientes de API o las herramientas automatizadas pueden detenerse en el 301 en lugar de seguirlo, según su configuración de redirecciones.
Causas principales, ordenadas por probabilidad
- Canonicalización intencionada de URL: El sitio redirige un hostname alternativo, una ruta, una variante con barra final u otra variante de URL a su dirección preferida.
- Migración de protocolo o hostname: El tráfico HTTP puede redirigirse a HTTPS, o un hostname antiguo puede apuntar a un hostname de reemplazo.
- Enrutamiento de la aplicación o del framework: La aplicación puede redirigir una ruta después de un cambio de ruta, un cambio en el estado de inicio de sesión o la reubicación de un recurso.
- Reglas del servidor web, reverse proxy o CDN: La configuración de la infraestructura puede aplicar una redirección antes de que la solicitud llegue a la aplicación.
- Comportamiento de redirección almacenado en caché: Un navegador, una caché intermedia o una CDN puede seguir sirviendo una redirección almacenada previamente mientras se propagan los cambios de configuración.
- Comportamiento específico del método: Una regla de redirección puede ser adecuada para la navegación en un navegador, pero no para una solicitud de API o un método que deba conservar la semántica de su solicitud.
- Reglas inesperadas o en conflicto: Varias capas pueden redirigir a destinos diferentes, creando una cadena o un bucle.
Cómo solucionarlo
Si estás visitando el sitio
- Comprueba la dirección exacta, incluido el hostname, la ruta y el protocolo. Sigue la redirección solo si el destino es conocido y esperado.
- Si el destino requiere una cuenta, inicia sesión mediante la interfaz normal del sitio y vuelve a intentarlo. No introduzcas credenciales en un dominio redirigido que no reconozcas.
- Si un navegador llega a la página prevista, es posible que el 301 funcione según lo diseñado. Si entra en un bucle, llega al host equivocado o termina en una página inexistente, registra la URL original y el destino.
- Para una API o un cliente automatizado, comprueba si sigue las redirecciones y si la URL redirigida es válida para el mismo método de solicitud y el mismo contexto de autenticación.
- Comunica al propietario del sitio la URL original, el destino, la hora aproximada, el tipo de cliente y el estado observado. No compartas contraseñas, cookies ni secretos de API.
Si eres el propietario o mantienes el sitio
- Reproduce la solicitud exacta. Registra el método HTTP, la URL completa, el host, el protocolo, el estado de autenticación cuando corresponda, el estado final y cada destino de redirección.
- Inspecciona las cabeceras de respuesta, especialmente
Location, las cabeceras relacionadas con la caché, las relacionadas con la autenticación y cualquier cabecera que identifique una capa de proxy o servidor. - Determina qué componente generó el 301: la aplicación, el servidor web, el reverse proxy, la CDN o el WAF. Comprueba los registros correspondientes usando la marca de tiempo de la solicitud y un identificador de solicitud, si está disponible.
- Compara el comportamiento con el diseño de enrutamiento previsto. Confirma si la redirección debe gestionar un cambio de hostname, una política de HTTP a HTTPS, una ruta canónica, un recurso movido o un flujo de la aplicación.
- Comprueba si hay cadenas, bucles o reglas de redirección en conflicto, así como un destino incorrecto. Revisa las implementaciones recientes y los cambios en el enrutamiento, la autenticación, la caché y la configuración del proxy o la CDN.
- Aplica la corrección autorizada más limitada en la capa que generó la respuesta. Evita cambios amplios en permisos, seguridad o reglas de redirección cuando el problema afecta a una sola ruta o condición.
- Vuelve a probar la misma URL y el mismo método desde un cliente adecuado. Después, prueba el destino, las rutas relacionadas importantes y los casos relevantes con y sin autenticación.
- Si sospechas de una redirección almacenada en caché, sigue el proceso aprobado de invalidación de caché del sitio y considera su impacto operativo antes de realizar ese cambio.
Prevención y cómo verificar la solución
- Define y documenta las redirecciones intencionadas, incluidas las URL antiguas, los destinos, los métodos afectados y los responsables.
- Mantén las reglas del servidor web, la aplicación, el reverse proxy, la CDN y el WAF bajo control de versiones cuando sea posible.
- Prueba las URL canónicas, el comportamiento de HTTP a HTTPS, los cambios de hostname, los métodos de API importantes y las rutas autenticadas después de cada lanzamiento.
- Supervisa las tasas, cadenas y bucles de redirección por ruta y lanzamiento, en lugar de tratar cada 301 como una interrupción del servicio.
- Conserva los registros de solicitudes y de la infraestructura durante el tiempo suficiente para correlacionar redirecciones inesperadas.
- Revisa el comportamiento de la caché al cambiar las reglas de redirección para que las respuestas obsoletas no oculten el resultado de una corrección.
Cuándo pedir ayuda externa
Escala el problema cuando un 301 inesperado afecte a una ruta pública importante, produzca un bucle o una cadena larga, envíe a los usuarios a un host no fiable o incorrecto, afecte a muchos usuarios o requiera cambios en la autenticación, la seguridad, el proxy, la CDN o la configuración del servidor que no puedas validar de forma segura. Proporciona detalles de la solicitud previamente anonimizados, destinos de redirección, marcas de tiempo, cabeceras de respuesta y registros relevantes. No compartas nunca contraseñas, cookies, claves de API ni otros secretos.
Preguntas frecuentes
¿HTTP 301 significa que todo el sitio web está caído?
No. Un 301 describe la respuesta a una solicitud HTTP concreta. Puede afectar a una URL, hostname, método, cliente o estado de autenticación mientras otras partes del sitio siguen funcionando.
¿Qué hace la cabecera Location en una respuesta 301?
Normalmente identifica la URL que el cliente debe solicitar a continuación. Comprueba que el destino tenga el host, el protocolo y la ruta correctos, y busca posibles cadenas o bucles.
¿Pueden estar bien el DNS y TLS cuando se devuelve HTTP 301?
Sí. La resolución DNS correcta y la negociación TLS son independientes del estado HTTP devuelto por el endpoint. Un 301 indica que un endpoint que habla HTTP respondió con una redirección.
¿Por qué un navegador sigue un 301 y mi cliente de API no?
Los navegadores suelen seguir las redirecciones durante la navegación, mientras que los clientes de API pueden requerir que se habilite el seguimiento de redirecciones o pueden detenerse para que la aplicación gestione el destino explícitamente. Comprueba el comportamiento de redirecciones del cliente, así como los requisitos de método y autenticación del destino.
¿Debe cambiarse una redirección permanente por otro código de estado?
No automáticamente. Primero confirma la relación prevista entre los recursos, el método de solicitud y el comportamiento del cliente. Cambiar el estado de una redirección puede afectar a la navegación, las cachés, los clientes y el procesamiento de los motores de búsqueda, así que hazlo solo cuando el diseño de enrutamiento lo requiera.
¿Qué deben comprobar primero los propietarios del sitio?
Confirma la solicitud exacta e inspecciona la cabecera Location; después, identifica qué capa generó la respuesta y relaciónala con los registros correspondientes. Revisa los cambios recientes de enrutamiento, proxy, aplicación y caché antes de editar la configuración.
Documentación adicional
- MDN Web Docs: 301 Moved Permanently — Referencia sobre el código de estado y su comportamiento HTTP.
- RFC 9110: HTTP Semantics — Referencia normativa sobre la semántica de las respuestas HTTP y el comportamiento de las redirecciones.