Al menos dos navegadores, Chrome y Firefox, almacenarán en caché una redirección 301 sin fecha de vencimiento .
Es decir, permanecerá en caché mientras el caché del navegador pueda acomodarlo. Se eliminará de la memoria caché si la borra manualmente, o si las entradas de la memoria caché se purgan para dejar espacio para las nuevas.
Puede verificar esto al menos en Firefox yendo about:cache
y buscándolo en la memoria caché del disco.
No sé sobre el comportamiento de otros navegadores, como IE10 / IE11. Sin embargo, dado que otros navegadores lo almacenan en caché indefinidamente, de todos modos tendrá que adaptarse a esto.
En todos los navegadores, incluido Chrome / Firefox, todavía es posible anular este comportamiento predeterminado utilizando encabezados, como se describe a continuación:
Nota: esta respuesta fue escrita en 2014 y el comportamiento del navegador puede cambiar con el tiempo.
Si no desea que la redirección se almacene en caché
Este almacenamiento en caché indefinido es solo el almacenamiento en caché predeterminado por estos navegadores en ausencia de encabezados de Cache-Control. La lógica es que está especificando una redirección "permanente" y no les está dando otras instrucciones de almacenamiento en caché, por lo que lo tratarán como si lo quisiera en caché indefinidamente.
Los navegadores aún respetan los encabezados Cache-Control y Expires como con cualquier otra respuesta, si se especifican.
Puede agregar encabezados como Cache-Control: max-age=3600
o Expires: Thu, 01 Dec 2014 16:00:00 GMT
a sus redireccionamientos 301. Incluso podría agregar Cache-Control: no-cache
para que el navegador Cache-Control: no-store
no lo almacene en caché de forma permanente o para que el navegador ni siquiera pueda almacenarlo en almacenamiento temporal.
Sin embargo, una mejor alternativa en mi opinión es utilizar una redirección 302 o 307. Esto no implica que los navegadores o las memorias caché sean redireccionamientos "permanentes" y, por lo tanto, no deberían almacenarse en memoria caché en ausencia de los encabezados de control de memoria caché.
Para mí, parece emitir una redirección 301, pero marcarla como no almacenable en caché va en contra del espíritu de la redirección 301, aunque pueda ser técnicamente válida. YMMV, y puede encontrar casos extremos en los que tiene sentido que una redirección "permanente" tenga un límite de tiempo.
Si anteriormente emitió una redirección 301 pero desea deshacerla
Si las personas aún tienen la redirección 301 en caché en su navegador, continuarán siendo llevadas a la página de destino, independientemente de si la página de origen todavía tiene la redirección en su lugar. Sus opciones para solucionar esto incluyen:
La mejor y más simple solución es emitir otra redirección 301 nuevamente.
El navegador se dará cuenta de que está siendo redirigido a lo que antes pensaba que era una URL desarmada, y esto debería hacer que vuelva a buscar esa URL nuevamente para confirmar que la redirección anterior todavía no está allí.
Editar: algunos comentarios arrojan dudas sobre esto, ver más abajo.
Si no tienes control sobre el sitio al que fue el objetivo de redireccionamiento anterior, entonces no tienes suerte. Intenta rogarle al propietario del sitio que te redirija a ti.
Además, es mejor prevenir que curar: evite una redirección 301 si no está seguro de querer desmantelar permanentemente la URL anterior.