Redireccionar de uma página HTML

É possível configurar uma página HTML básica para redirecionar para outra página em carga?

Author: David Angulo, 2011-03-23

25 answers

Tente usar:

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

Nota: coloque-o na secção da cabeça.

Adicionalmente para navegadores mais antigos se adicionar uma ligação rápida no caso de não actualizar correctamente:

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

Aparecerá como

Redireccionar

Isto ainda lhe permitirá chegar ao seu destino com um clique adicional.
 1952
Author: Valerij, 2017-07-21 09:31:35

Eu usaria tanto meta , e código JavaScript e teria uma ligação só para o caso.

<!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, acho que a melhor maneira, se possível, é usar redirectos do servidor, por isso envie um 301 código de situação. Isso é fácil de fazer através de arquivos .htaccess usando Apache , ou através de vários plugins usando WordPress . Estou certo de que também existem plugins para todos os principais sistemas de gestão de conteúdo. Além disso, o cPanel tem uma configuração muito fácil para o 301. redirecciona se tiver isso instalado no seu servidor.

 1018
Author: Billy Moon, 2017-12-08 14:11:16

JavaScript

<script language="javascript">
    window.location.href = "http://example.com"
</script>

Meta tag

<meta http-equiv="refresh" content="0;url=http://example.com">
 111
Author: amit_g, 2013-04-19 18:32:46

Eu tambémadicionaria uma ligação canónica para ajudar as tuas pessoas:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
 40
Author: lrkwz, 2016-06-25 19:10:00

Esta é uma soma de todas as respostas anteriores mais uma solução adicional usando o cabeçalho HTTP Refresh via .htaccess

1. Actualizar o cabeçalho de HTTP

Em primeiro lugar, podes usar .htaccess para definir um cabeçalho de actualização como este

Header set Refresh "3"

Este é o equivalente "estático" de usar a função header() emPHP

header("refresh: 3;");

Note que esta solução não é suportada por todos os navegadores.

2. JavaScript

Com um URL alternativo :

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

Sem um URL alternativo:

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

Via jQuery:

<script>
    window.location.reload(true);
</script>

3. Actualização Do Meta

Pode usar a actualização do meta quando as dependências do JavaScript e os cabeçalhos de redireccionamento são indesejados

Com um URL alternativo:

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

Sem um URL alternativo:

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

Utilizar <noscript>:

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

Opcionalmente

Como recomendado por Billy Moon, você pode fornecer um link de atualização no caso de algo correr mal:

Se não for redireccionado automaticamente: <a href='http://example.com/alternat_url.html'>Click here</a>

Recursos

 29
Author: RafaSashi, 2018-07-11 08:45:31

A seguinte meta tag, colocada entre a cabeça, irá dizer ao navegador para redireccionar:

<meta http-equiv="Refresh" content="seconds; url=URL"> 

Substitua os segundos pelo número de segundos para esperar antes de redireccionar, e substitua o URL pelo URL para o qual deseja redireccionar.

Alternativamente, você pode redirecionar com JavaScript. Coloque isto dentro de uma marca de programa em qualquer parte da Página:

window.location = "URL"
 27
Author: Peter Olson, 2015-09-30 19:05:07

Seria melhor configurar um 301 redirect . Veja o artigo do Webmaster Tools do Google301 redirects.

 26
Author: Alex K, 2015-02-26 12:38:09

Se você está ansioso para seguir os padrões modernos da web, você deve evitar redirecionamentos HTML simples. Se não conseguir criar o código do lado do servidor, deverá escolher JavaScript redireccionar em vez disso.

Para suportar navegadores desactivados pelo JavaScript, adicione uma linha de redireccionamento HTML para um elemento noscript. O noscript redireccionamento Meta aninhado combinado com a marca canonical irá ajudar o seu ranking do motor de busca também.

Se quiser evitar redireccionar os laços, deve usar o location.replace() Função JavaScript.

Um cliente adequado URL redirect o código parece-se com este (com um Internet Explorer 8 e fix inferior e sem 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://stackoverflow.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0; URL=https://stackoverflow.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://stackoverflow.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 -->
 24
Author: Patartics Milán, 2018-07-11 21:37:33

Você poderia usar um META "redireccionar":

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

Ou JavaScript redirect (note que nem todos os utilizadores têm o JavaScript activo, por isso prepare sempre uma solução de salvaguarda para eles)

<script language="javascript">
  window.location = "http://new.example.com/address";
</script>

Mas prefiro recomendar a utilização de mod_ reescrever , se tiver a opção.

 17
Author: Czechnology, 2013-03-02 23:42:37
Assim que a página carrega, a função init é disparada e a página é redireccionada:
<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <script>
            function init()
            {
               window.location.href = "www.wherever.com";
            }
        </script>
    </head>

    <body onload="init()">
    </body>
</html>
 14
Author: kkk, 2016-06-25 19:08:31

Coloque o seguinte código entre as marcas

e do seu código HTML:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">
O código de redirecionamento HTML acima irá redirecionar seus visitantes para outra página web instantaneamente. O content="0; pode ser alterado para o número de segundos que deseja que o navegador espere antes de redirecionar.
 10
Author: Muhammad Saqib, 2018-05-19 17:11:39

Coloque o seguinte código na secção <head>:

<meta http-equiv="refresh" content="0; url=http://address/">
 9
Author: Sebi, 2013-04-19 18:28:25

Eu encontrei um problema ao trabalhar com uma jQuery Mobile aplicação, onde, em alguns casos, a minha Meta tag de cabeçalho não iria conseguir um redirecionamento corretamente (jQuery Mobile não ler cabeçalhos automaticamente para cada página de modo a colocar o JavaScript lá também é ineficaz a menos que envolvendo-a em complexidade). Eu encontrei a solução mais fácil neste caso era colocar o redirecionamento JavaScript diretamente no corpo do documento, como segue:

<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>
Isto parece funcionar em todos os casos. por mim.
 9
Author: Scotsman, 2016-06-25 19:07:29

A maneira simples que funciona para todos os tipos de páginas é apenas adicionar uma etiqueta meta na cabeça:

<html>
    <head>
        ...
        <meta HTTP-EQUIV="REFRESH" content="seconds; url=your.full.url/path/filename">
        ...
    </head>
    <body>
        Don't put much content, just some text and an anchor.
        Actually, you will be redirected in N seconds (as specified in content attribute).
        That's all.
        ...
    </body>
</html>
 8
Author: P. BANERJEE, 2014-09-03 15:22:44

Devias usar JavaScript. Coloque o seguinte código nas etiquetas de cabeça:

<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>
 7
Author: kriscross07, 2013-11-13 22:25:49

Pode redireccionar automaticamente pelo código de situação HTTP 301 ou 302.

Para o PHP:

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>
 7
Author: Vô Vị, 2018-01-26 09:02:18

Só para uma boa medida:

<?php
header("Location: [email protected]", TRUE, 303);
exit;
?>

Certifique-se de que não há eco por cima do script caso contrário ele será ignorado. http://php.net/manual/en/function.header.php

 6
Author: Edward, 2013-11-28 13:27:19

Motor de barbear para um atraso de 5 segundos:

<meta http-equiv="Refresh"
         content="5; [email protected]("Search", "Home", new { id = @Model.UniqueKey }))">
 5
Author: JoshYates1980, 2016-06-25 19:05:39
<!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>
 5
Author: Pirate of Marmara, 2017-07-10 02:35:43

Basta usar o evento onload da etiqueta:

<body onload="window.location = 'http://example.com/'">
 5
Author: pat capozzi, 2018-05-19 17:14:52

Uso um script que redirecciona o utilizador do Índice.html para a Página de autenticação

<html>
  <head>
    <title>index.html</title>
  </head>
  <body onload="document.getElementById('lnkhome').click();">
    <a href="/Pages/Login.aspx" id="lnkhome">Go to Login Page<a>
  </body>
</html>
 5
Author: Zolfaghari, 2018-08-12 11:23:59
Não precisas de nenhum código JavaScript para isto. Escreva isto na secção <head> da página HTML:
<meta http-equiv="refresh" content="0; url=example.com" />
Assim que a página carregar em 0 segundos, pode ir para a sua página.
 4
Author: Yash Jain, 2017-05-21 11:20:30
Até onde eu os entendo, todos os métodos que vi até agora para esta questão parecem adicionar a antiga localização à história. Para redirecionar a página, mas não tem a localização antiga na história, eu uso o método replace:
<script>
    window.location.replace("http://example.com");
</script>
 3
Author: Paul Ogilvie, 2018-05-19 17:15:44

Esta é uma solução de redireccionamento com tudo o que eu queria, mas não consegui encontrar num excerto limpo para cortar e colar.

Este trecho tem uma série de Vantagens:

  • permite-te apanhar e reter qualquer params de querystring que as pessoas tenham no seu url
  • Faz A ligação unqiue para evitar cache indesejado
  • permite-lhe informar os utilizadores dos nomes antigos e novos do site
  • mostra uma contagem decrescente
  • pode ser usado para redirecções de ligações profundas como retém params

Como utilizar:

Se você migrou um site inteiro, em seguida, no antigo servidor parar o site original e criar outro com este arquivo como o índice padrão.ficheiro html na pasta de topo. Edite a configuração do site para que qualquer erro 404 seja redirecionado para este índice.página html. Isto captura qualquer um que acessa o site antigo com um link em uma página sub-nível etc.

Agora vá para a etiqueta de abertura do script e edite os endereços web do oldsite e do newSite, e mude o o valor dos segundos é o necessário.

Salve e inicie o seu site. Trabalho feito, tempo para um 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>
 2
Author: Vanquished Wombat, 2018-03-19 12:58:42

Utilizar este código:

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

Por favor, prestem atenção.: põe na etiqueta da cabeça.

 -1
Author: AngelHotxxx, 2018-03-05 09:11:56