Redirigir desde una página HTML


Answers

Usaría meta y código de JavaScript y tendría un enlace por si acaso.

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="refresh" content="0; url=http://example.com">
        <script type="text/javascript">
            window.location.href = "http://example.com"
        </script>
        <title>Page Redirection</title>
    </head>
    <body>
        <!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
        If you are not redirected automatically, follow this <a href='http://example.com'>link to example</a>.
    </body>
</html>

Para completar, creo que la mejor manera, si es posible, es usar redireccionamientos de servidor, así que envíe un código de estado 301 . Esto es fácil de hacer a través de archivos .htaccess usando Apache , o mediante numerosos complementos usando WordPress . Estoy seguro de que también hay complementos para todos los principales sistemas de administración de contenido. Además, cPanel tiene una configuración muy sencilla para los redireccionamientos 301 si tiene eso instalado en su servidor.

Question

¿Es posible configurar una página HTML básica para redirigir a otra página en la carga?




Esta es una solución de redirección con todo lo que quería pero no pude encontrar en un buen fragmento limpio para cortar y pegar.

Este fragmento tiene una serie de ventajas:

  • le permite capturar y retener cualquier parámetro de querystring que la gente tenga en su URL
  • hace que el enlace sea único para evitar el almacenamiento en caché no deseado
  • le permite informar a los usuarios de los nombres de sitios antiguos y nuevos
  • muestra una cuenta atrás ajustable
  • se puede usar para redirigir enlaces profundos, ya que conserva parámetros

Cómo utilizar:

Si migró un sitio completo, en el antiguo servidor detenga el sitio original y cree otro con este archivo como el archivo index.html predeterminado en la carpeta raíz. Edite la configuración del sitio para que cualquier error 404 se redirija a esta página index.html. Esto atrapa a cualquiera que accede al sitio antiguo con un enlace a una página de subnivel, etc.

Ahora ve a la etiqueta de script de apertura y edita las direcciones web oldsite y newSite, y cambia el valor de los segundos según sea necesario.

Guarde y comience su sitio web. Trabajo hecho - hora de tomar un café.

<!DOCTYPE html>
<html>
<head>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
<style>
body { margin: 200px; font: 12pt helvetica; }
</style>

</head>
<body>

</body>
<script type="text/javascript">

// Edit these to suit your needs.
var oldsite = 'http://theoldsitename.com'
var newSite = "https://thenewsitename.com";
var seconds = 20;  // countdown delay.

var path = location.pathname;
var srch = location.search;
var uniq = Math.floor((Math.random() * 10000) + 1);
var newPath = newSite + path + (srch === '' ? "?" + uniq : srch + "&" + uniq); 


document.write ('<p>As part of hosting improvements, the system has been migrated from ' + oldsite + ' to</p>');
document.write ('<p><a href="' + newPath + '">' + newSite + '</a></p>');
document.write ('<p>Please take note of the new website address.</p>');
document.write ('<p>If you are not automatically redirected please click the link above to proceed.</p>');
document.write ('<p id="dvCountDown">You will be redirected after <span id = "lblCount"></span>&nbsp;seconds.</p>');

function DelayRedirect() {
    var dvCountDown = document.getElementById("dvCountDown");
    var lblCount = document.getElementById("lblCount");
    dvCountDown.style.display = "block";
    lblCount.innerHTML = seconds;
    setInterval(function () {
        seconds--;
        lblCount.innerHTML = seconds;
        if (seconds == 0) {
            dvCountDown.style.display = "none";
            window.location = newPath;
        }
    }, 1000);
}
DelayRedirect()

</script>
</html>




Solo para una buena medida:

<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>

Asegúrese de que no haya eco encima del script, de lo contrario será ignorado. http://php.net/manual/en/function.header.php




Solo usa el evento de carga de la etiqueta del cuerpo.

<body onload="window.location = 'http://example.com/'">






Utilizo un script que redirige al usuario de index.html a home.html

<html>
  <head>
    <title>index.html</title>
  </head>
  <body onload="document.getElementById('lnkhome').click();">
    <a href="Home.html" id="lnkhome">Go to Home Page<a>
  </body>
</html>



Encontré un problema al trabajar con una aplicación jQuery Mobile , donde en algunos casos mi etiqueta Meta no lograba una redirección correcta (jQuery Mobile no lee los encabezados automáticamente para cada página, por lo que poner JavaScript allí también es ineficaz a menos que lo envuelva complejidad). Encontré que la solución más fácil en este caso era poner la redirección de JavaScript directamente en el cuerpo del documento, de la siguiente manera:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="refresh" content="0;url=myURL" />
    </head>

    <body>
        <p>You are not logged in!</p>
        <script language="javascript">
            window.location = "myURL";
        </script>
    </body>
</html>

Esto parece funcionar en todos los casos para mí.




Si desea seguir los estándares web modernos, debe evitar los redireccionamientos de HTML meta sencillos. Si no puede crear el código del lado del servidor, debe elegir el redireccionamiento de JavaScript en su lugar.

Para admitir los navegadores con discapacidad de JS, agregue una línea de HTML meta a un elemento noscript . La redirección de meta noscript anidada combinada con la etiqueta canonical también ayudará a la clasificación de su motor de búsqueda.

Si desea evitar los bucles de redirección, debe usar la función de JavaScript location.replace ().

Un código de redireccionamiento URL de cliente adecuado se ve así (con un IE 8 y una solución más baja y sin demora):

<!-- Pleace this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->



También agregaría un enlace canónico para ayudar a tu gente de SEO :

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>



<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Redirect to a page</title>
    </head>
    <body onload="window.location.assign('http://example.com')">

    </body>
</html>



Coloque el siguiente código entre las etiquetas y de su código HTML.

<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">

El código de redirección de HTML anterior redirigirá a los visitantes a otra página web al instante. El content="0; puede cambiarse a la cantidad de segundos que desea que el navegador espere antes de redireccionar.




Tan pronto como se carga la página, se dispara la función de init y se redirige la página:

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <script>
            function init()
            {
               window.location.href = "www.wherever.com";
            }
        </script>
    </head>

    <body onload="init()">
    </body>
</html>



Links