lunes, 9 de agosto de 2010

asp.net - app_offline.htm como pagina de redireccion

Vamos a suponer que una aplicación web, luego de varios años de funcionar en un servidor y con un dominio dado, tiene que trasladarse a otro servidor y a otro dominio… cosa que pasa en la vida real.
y digamos que los usuarios de esta aplicación web, tienen guardados enlaces que han acumulado con el tiempo… estos enlaces llevan a páginas del dominio inicial…
ahora viene la pregunta:
cómo hacemos para estos usuarios al querer ingresar a sus antiguas direcciones web, sean redireccionados hacia el nuevo servidor?
Vamos a dejar claro que los usuarios pueden intentar ingresar de varias formas:
  1. Usando sus enlaces guardados, como http://www.some_dominio.com/pagina1.aspx?id=5
  2. Tratando de acceder desde el home: http://www.some_dominio.com
Posibles soluciones:
  1. Configurar IIS para que redireccione al nuevo servidor
  2. Crear una página index.htm con el mensaje de que se cambió de servidor y redireccionar al nuevo servidor
  3. Otras soluciones.
La primera solución funciona si tenemos acceso al IIS
La segunda solución no funcionaría con la primera url guardada
Hay una forma bastante simple de solucionar este problema:
redirect
Se trata de usar la página app_offline.htm, cuya finalidad es precisamente avisar que la aplicación no está disponible en un momento dado.
Dado que la página app_offline.htm siempre se mostrará ante cualquier petición de cualquier página aspx en el viejo servidor… y si quieres le encargas que deje algún mensaje...
osea app_offline es la página que si hablara te diría: "oye, buscas a alguien? lo siento, en este momento no te puede atender... pero sabes qué? me dijo que bla bla bla ;)"
Entonces, sólo pongan en la raiz de la aplicación web una página app_offline.htm que contenga el sgte código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>INTRANET</title>
<meta http-equiv="refresh" content="5; URL=http://mi_dominio.com/intranet/" />
<style type="text/css">
*
{
color: white;
font-family: verdana;
}
</style>
</head>
<body bgcolor="black">
<div style="text-align: center">
<img src="http://t0.gstatic.com/images?q=tbn:ANd9GcQCxMvevm7mw4UHpsh8W3ullm8EmhjZusNQbPKZka2ysFay5e8&t=1&usg=__g7pghkZhgTURdHFnwN_3GiAtdtA="
alt="" />
<p>
Estimado usuario, EL SISTEMA INTRANET ha sido movido hacia
<br />
</p>
<p>
<a style="text-decoration: underline; color: white;" href="http://mi_dominio.com/intranet/">
http://mi_dominio.com/intranet/</a>
<p>
&nbsp;</p>
Ud será redireccionado hacia allá en este momento.
<p>
&nbsp;</p>
Si la redirecciòn no se realiza, por favor haga click en el sgte enlace
<br />
<a style="text-decoration: underline; color: white;" href="http://mi_dominio.com/intranet/">
http://mi_dominio.com/intranet/</a>
</p>
</div>
</body>
</html>

Lo que hace este código es mostrarte un mensaje durante 5 segundos y luego te redirecciona al nuevo servidor.

Espero que les sea de utilidad ;)

No hay comentarios.: