Cómo redirigir una página HTML a otra al cargar

Resuelto chobo asked hace 13 años • 24 respuestas

¿Es posible configurar una página HTML básica para redirigir a otra página al cargar?

chobo avatar Mar 24 '11 03:03 chobo
Aceptado

Intenta usar:

<meta http-equiv="refresh" content="0; url=http://example.com/" />

Nota: Colóquelo en la <head>sección.

Además, para navegadores más antiguos si agrega un enlace rápido en caso de que no se actualice correctamente:

<p><a href="http://example.com/">Redirect</a></p>

Aparecerá como

Redirigir

Esto aún te permitirá llegar a tu destino con un clic adicional.

Valerij avatar Mar 23 '2011 21:03 Valerij

Usaría código meta y 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 utilizar redireccionamientos del servidor, así que envíe un código de estado 301 . Esto es fácil de hacer a través de .htaccessarchivos usando Apache o mediante numerosos complementos usando WordPress . Estoy seguro de que también existen complementos para los principales sistemas de gestión de contenidos. Además, cPanel tiene una configuración muy sencilla para redireccionamientos 301 si lo tiene instalado en su servidor.

Billy Moon avatar Mar 23 '2011 21:03 Billy Moon

javascript

<script type="text/javascript">
    window.location.href = "http://example.com";
</script>

metaetiqueta

<meta http-equiv="refresh" content="0;url=http://example.com">
amit_g avatar Mar 23 '2011 21:03 amit_g

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

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
lrkwz avatar Feb 06 '2012 00:02 lrkwz

Este es un resumen de todas las respuestas anteriores más una solución adicional que utiliza el encabezado de actualización HTTP a través de .htaccess

  1. Encabezado de actualización HTTP

    En primer lugar, puedes usar .htaccess para configurar un encabezado de actualización como este

    Header set Refresh "3"
    

    Este es el equivalente "estático" de usar la header()función en PHP

    header("refresh: 3;");
    

    Tenga en cuenta que esta solución no es compatible con todos los navegadores.

  2. javascript

    Con una URL alternativa :

    <script>
        setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
    </script>
    

    Sin una URL alternativa:

    <script>
        setTimeout("location.reload(true);",timeoutPeriod);
    </script>
    

    Usando el windowobjeto:

    <script>
        window.location.reload(true);
     </script>
    
  3. Metaactualización

    Puede utilizar la meta actualización cuando las dependencias de JavaScript y los encabezados de redireccionamiento no sean deseados.

    Con una URL alternativa:

    <meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">
    

    Sin una URL alternativa:

    <meta http-equiv="Refresh" content="3">
    

    Usando <noscript>:

    <noscript>
        <meta http-equiv="refresh" content="3" />
    </noscript>
    

Opcionalmente

Según lo recomendado por Billy Moon, puedes proporcionar un enlace de actualización en caso de que algo salga mal:

Si no eres redirigido automáticamente:<a href='http://example.com/alternat_url.html'>Click here</a>

Recursos

  • Metaactualización de Wikipedia

  • El impacto en el rendimiento de META REFRESH

  • ¿Actualizar (recargar) una página una vez usando jQuery?

RafaSashi avatar Nov 06 '2014 10:11 RafaSashi