Redirección de páginas con Meta-Equiv Refresh

Si no se tiene acceso al archivo .htaccess, con el que se hacen las redirecciones óptimas, aún podemos conseguir algo si mantenemos el acceso a los viejos archivos, es decir, si no perdemos el hosting o alojamiento en el que estaban las páginas que ahora queremos redireccionar. Esto se debe a que, si perdemos ese viejo hosting, no podemos editar esos archivos antiguos, que es donde hay que colcoar el código necesario para realizar la redirección. Veámoslo poco a poco mejor.

Partimos de la base de que teníamos una serie de páginas en funcionamiento y ahora queremos que las visitas sean redirigidas a otras páginas que tienen una url distinta, por llamarse sus archivos de otro modo o por estar alojadas en otro dominio, verdad?

Para conseguir hacer funcionar este redireccionamiento necesitamos seguir teniendo acceso al viejo alojamiento o servidor y mantener los viejos archivos html que ahora queremos redireccionar. Si no tenemos acceso a esos archivos, no podremos colocar en ellos el código que desvia las visitas al nuevo lugar, me explico? Quizás por este motivo, sea necesario mantener el viejo hosting, al menos hasta que los visitantes se den cuenta de que la url ha cambiado y que también Google conozca de la nueva situación. Una vez ocurra esto, podríamos olvidarnos del viejo servidor o alojamiento, pero al menos unos meses sí que deberían coexistir ambos.

Código para redireccionar páginas desde Html con Meta Refresh

Bien, suponiendo entonces que tenemos acceso a los viejos archivos, para aplicar la redirección bastaría con colocar dentro de sus cabeceras, es decir, entre las etiquetas head y head, la siguiente línea de código:

<head>
  .....
  <meta http-equiv="refresh" content="5; url=nueva-web.html">
  .....
</head>

Las líneas de solo puntos obviamente no forman parte del ejemplo, sino que solo indican que pueden haber allí otras líneas de código. Solo hemos de colocar la destacada en negrita, oki?

Si la página a la que queremos redireccionar está en otro dominio distinto, hay que colocar la url completa y, no debes olvidar añadirle delante la http://, tal que así:

<head>
  .....
  <meta http-equiv="refresh" content="5;url=http://www.comocreartuweb.com">
  .....
</head>

Como ves, la línea consta de varios detalles. Con http-equiv="refresh" indicamos que queremos que el navegador refresque la página, y que lo haga además cuando transcurra la cantidad de segundos (esta vez el número que pongamos son segundos completos, no milisegundos, oki?) que pongamos en content="5". Con solamente esto, lo que ocurrirá es que pasados 5 segundos el navegador va a refrescar su vista, pero volviendo a la misma página.

Si en lugar de un número de segundos, ponemos un cero, la redirección será instantanea.

Si además queremos que se produzca la redirección, tras refrescar lo mandaremos a la url que queramos, con ese otro trozo de código, url=http://www.comocreartuweb.com. Recuerda poner siempre la http:// cuando apuntes a otro dominio o no funcionará el invento! Si se trata de una página en el mismo dominio, puedes usar igualmente rutas absolutas o también si lo deseas rutas relativas.

No es un método muy bien visto. A Google no le mola mucho pues lo usan muchos crakers para hacer travesuras. Por otro lado su uso va en contra de las normas de buenas prácticas aconsejadas por la W3C. Uno de los motivos es que si un usuario llega a una de estas páginas y pulsa sobre el botón "Back" de su navegador antes de los dos o tres segundos de producirse la redirección, ocurren efectos inesperados, no muy buenos para la usabilidad de la página. Además, no olvidemos que estamos enviando a un usuario a otra parte sin su consentimiento, lo cuál puede disgustarle claro.

No obstante lo anterior, ahí están por si no tenemos otra solución mejor. Desde luego, yo antes que perder visitantes, lo usaría, siempre que sea por no poder aplicar la solución óptima que es a través del archivo .htaccess claro. La solución con Javascript tiene el problema como veremos, de que el usuario puede tenerlo desactivado en su navegador, con lo que no funcionaría el invento.

Un detalle. Si establecemos cero segundos para que se realive la redirección, al navegador no le va a dar prácticamente tiempo de mostrar nada de lo que contenga este viejo archivo, ni por supuesto al visitante le va a dar tiempo de verlo. Es por eso que en los casos en los que se decida hacer un redireccionamiento automático sin esperas, se puede perfectamente eliminar todo el resto de código de esos archivos. De este modo no hacemos al navegador cargar una información que no va a mostrar, ni al visitante le hacemos gastar tiempo ni kilobytes de descarga. Te parece? Con tener algo así es suficiente:

<html>
  <head>
    <meta http-equiv="refresh" content="0">
  </head>
  <body></body>
<html>

Seguimos aprendiendo más sobre redireccionar webs?