Para seguir padrões modernos da web e fornecer a funcionalidade de cross-browser, eu prefiro usar este avançado gerador de redirecionamento
Patartics Milán
1
Use .htaccess ou equivalente ao IIS para fazer um redirecionamento do servidor. Dessa forma, mesmo se sua página física desaparecer, o redirecionamento ainda funcionará.
Essa ferramenta insider.zone fez com que meus redirecionamentos fossem minúsculos, causando 404s. Além disso, não há como entrar em contato com quem criou a página.
O uso da atualização meta é desencorajado pelo World Wide Web Consortium (W3C). Ref: en.wikipedia.org/wiki/Meta_refresh . Portanto, é recomendável usar o redirecionamento do servidor. Os redirecionamentos de JavaScript podem não funcionar em todos os celulares, pois o JavaScript pode estar desativado.
NinethSense
61
Para sua informação, os 0meios para atualizar após 0 segundos. Você pode dar ao usuário mais tempo para saber o que está acontecendo.
Dennis
5
@ Paul Draper, que depende do servidor que está executando
Gal Margalit
9
Eu adicionei o fechamento da tag para respeitar as especificações XHTML5.
ZenLulz
98
O comentário do @ NinethSense faz a meta refresh parecer um redirecionamento de JavaScript. A atualização meta não é JS e ainda funcionará quando o JS estiver desativado.
Druska
1104
Eu usaria ambos código meta e JavaScript e teria um link por precaução.
<!DOCTYPE HTML><htmllang="en-US"><head><metacharset="UTF-8"><metahttp-equiv="refresh"content="0; url=http://example.com"><scripttype="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 <ahref='http://example.com'>link to example</a>.
</body></html>
Para garantir a integridade, acho que a melhor maneira, se possível, é usar os redirecionamentos do servidor; portanto, envie um código de status 301 . Isso é fácil através de .htaccessarquivos usando o Apache ou através de vários plugins usando o WordPress . Estou certo de que também existem plugins para todos os principais sistemas de gerenciamento de conteúdo. Além disso, o cPanel possui uma configuração muito fácil para redirecionamentos 301, se você o tiver instalado no servidor.
Esta página de redirecionamento pode ser muito mais conciso com HTML5: pastebin.com/2qmfUZMk (que funciona em todos os navegadores, e passa Validação W3C)
enyo
9
@enyo Eu não sou um grande fã de deixar cair as bodytags e coisas do gênero. Talvez valide e talvez funcione em navegadores comuns. Estou certo de que há alguns casos adicionais que causam problemas e o benefício parece pequeno.
Billy Lua
9
@Fricker, porque eles podem não estar clicando. Eles podem estar controlando via voz, tocando ou navegando de alguma maneira desconhecida. É uma diretriz de acessibilidade seguir padrões para controles, como usar o atributo HTML A padrão para um link, pensar nele e comunicá-lo como um link, e não prescrever como alguém deve interagir com ele. Além disso, click herenão é recomendável ter um link, pois o leitor de tela será mais difícil de navegar. Os links devem estar no texto que descreve o destino, para que o usuário saiba onde ele chegará antes de segui-lo e, no entanto, ele interage com ele.
Billy Moon
2
@ BillyMoon, na verdade, o significado de "clique" já foi sobrecarregado para incluir todos esses significados também. "click" vai dar certo.
Pacerier
2
@BillyMoon sob que circunstâncias ocasionais o navegador ignora a atualização meta de valor 0? Obrigado!
Você usaria um link canônico além de um redirecionamento? en.wikipedia.org/wiki/Canonical_link_element diz que o Google prefere o uso de um redirecionamento em vez de um link canônico.
Larsh
1
@larsH Então, o que é mais importante para o SEO, é o link de redirecionamento ou a página de destino final?
A pergunta pede especificamente uma página .html básica. Eu acho que o Asker não pode modificar .htaccess ou similar (por exemplo, usando o Github Pages ou hospedagem limitada semelhante). 301 não é factível em tais casos
Nicolas Raoul
26
Se você deseja seguir os padrões da web modernos, evite meta-redirecionamentos HTML simples. Se você não conseguir criar o código do lado do servidor, escolha o redirecionamento JavaScript .
Para oferecer suporte a navegadores desativados em JavaScript, adicione uma linha de redirecionamento de HTML a um noscriptelemento. O noscriptmeta redirecionamento aninhado combinado com ocanonical tag também ajudará na classificação do seu mecanismo de pesquisa.
Se você deseja evitar loops de redirecionamento, use o comando location.replace() função JavaScript.
Um código de redirecionamento de URL do lado do cliente adequado é semelhante a este (com um Internet Explorer 8 e correção mais baixa 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 --><linkrel="canonical"href="https://stackoverflow.com/"/><noscript><metahttp-equiv="refresh"content="0; URL=https://stackoverflow.com/"></noscript><!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]--><scripttype="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 -->
Os argumentos que o w3c fornece contra redirecionamentos HTML também se aplicam aos redirecionamentos Javascript. Além disso, os redirecionamentos Javascript exigem o Javascript ativado, ao contrário dos redirecionamentos HTML. Portanto, os redirecionamentos HTML são estritamente melhores que os redirecionamentos Javascript nos casos em que é possível usar os dois.
O código de redirecionamento HTML acima redirecionará seus visitantes para outra página da web instantaneamente. A content="0;pode ser alterado para o número de segundos que você deseja que o navegador espera antes de redirecionamento.
Encontrei um problema ao trabalhar com um aplicativo jQuery Mobile , onde, em alguns casos, minha tag de cabeçalho Meta não conseguia um redirecionamento corretamente (o jQuery Mobile não lê automaticamente os cabeçalhos de cada página, portanto, colocar o JavaScript também é ineficaz, a menos que o envolva complexidade). Eu achei a solução mais fácil nesse caso foi colocar o redirecionamento JavaScript diretamente no corpo do documento, da seguinte maneira:
<html><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><metahttp-equiv="refresh"content="0;url=myURL"/></head><body><p>You are not logged in!</p><scriptlanguage="javascript">
window.location ="myURL";</script></body></html>
A maneira simples que funciona para todos os tipos de páginas é apenas adicionar uma metatag na cabeça:
<html><head>
...
<metaHTTP-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>
Isso não é um redirecionamento de uma página HTML.
Bugmenot123 #
7
Eu uso um script que redireciona o usuário de index.html para o URL relativo da Página de login
<html><head><title>index.html</title></head><bodyonload="document.getElementById('lnkhome').click();"><ahref="/Pages/Login.aspx"id="lnkhome">Go to Login Page<a></body></html>
O URL de redirecionamento no método acima pode ser relativo. por exemplo: você deseja redirecionar para a página de login ou qualquer página relativa index.html na raiz do site. não precisa saber seu nome de domínio. mas quando você define window.location.href = "xxx"; você deve saber o nome de domínio.
A pergunta pede especificamente uma página .html básica. Eu acho que o Asker não pode modificar .htaccess ou similar (por exemplo, usando o Github Pages ou hospedagem limitada semelhante). O PHP não está disponível nesses casos.
Nicolas Raoul
Eu consideraria algo gerado pelo PHP (processador de pré-hipertexto) uma "página HTML básica". Em nenhum lugar da questão ele mencionou um tipo de arquivo.
Isso não é um redirecionamento de uma página HTML.
reduzindo a atividade
5
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>Redirect to a page</title></head><bodyonload="window.location.assign('http://example.com')"></body></html>
este já está coberto nas aceitei resposta & top comentários - considere editar a resposta do que postar uma duplicata de um
ROZZA
3
Tanto quanto eu os entendo, todos os métodos que vi até agora para esta pergunta parecem adicionar o local antigo à história. Para redirecionar a página, mas não tenho o local antigo no histórico, eu uso o replacemétodo:
Esta é uma solução de redirecionamento com tudo o que eu queria, mas não consegui encontrar em um bom snippet limpo para cortar e colar.
Este trecho tem várias vantagens:
permite capturar e manter todos os parâmetros de consulta que as pessoas têm em seus URLs
torna o link desnecessário para evitar cache indesejado
permite que você informe aos usuários os nomes antigos e novos dos sites
mostra uma contagem regressiva configurável
pode ser usado para redirecionamentos de link direto como retém parâmetros
Como usar:
Se você migrou um site inteiro, no servidor antigo, pare o site original e crie outro com esse arquivo como o arquivo index.html padrão na pasta raiz. Edite as configurações do site para que qualquer erro 404 seja redirecionado para esta página index.html. Isso captura qualquer pessoa que acessa o site antigo com um link em uma página de nível inferior, etc.
Agora vá para a tag de script de abertura e edite os endereços da web do site antigo e do novo site e altere o valor de segundos conforme necessário.
Salve e inicie seu site. Trabalho feito - hora de tomar um café.
<!DOCTYPE html><html><head><METAHTTP-EQUIV="CACHE-CONTROL"CONTENT="NO-CACHE"><METAHTTP-EQUIV="PRAGMA"CONTENT="NO-CACHE"><METAHTTP-EQUIV="EXPIRES"CONTENT="Mon, 22 Jul 2002 11:12:01 GMT"><style>
body {margin:200px;font:12pt helvetica;}</style></head><body></body><scripttype="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> seconds.</p>');functionDelayRedirect(){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>
<script>
window.location.replace("https://google.com");</script><noscript><ahref="https://google.com">Click here if you are not redirected automatically.</a></noscript>
Respostas:
Tente usar:
Nota: Coloque-o na seção principal.
Além disso, para navegadores mais antigos, se você adicionar um link rápido, caso ele não seja atualizado corretamente:
<p><a href="http://example.com/">Redirect</a></p>
Aparecerá como
Redirecionar
Isso ainda permitirá que você chegue aonde está indo com um clique adicional.
fonte
0
meios para atualizar após 0 segundos. Você pode dar ao usuário mais tempo para saber o que está acontecendo.Eu usaria ambos código meta e JavaScript e teria um link por precaução.
Para garantir a integridade, acho que a melhor maneira, se possível, é usar os redirecionamentos do servidor; portanto, envie um código de status 301 . Isso é fácil através de
.htaccess
arquivos usando o Apache ou através de vários plugins usando o WordPress . Estou certo de que também existem plugins para todos os principais sistemas de gerenciamento de conteúdo. Além disso, o cPanel possui uma configuração muito fácil para redirecionamentos 301, se você o tiver instalado no servidor.fonte
body
tags e coisas do gênero. Talvez valide e talvez funcione em navegadores comuns. Estou certo de que há alguns casos adicionais que causam problemas e o benefício parece pequeno.click here
não é recomendável ter um link, pois o leitor de tela será mais difícil de navegar. Os links devem estar no texto que descreve o destino, para que o usuário saiba onde ele chegará antes de segui-lo e, no entanto, ele interage com ele.Javascript
Meta tag
fonte
Eu também adicionaria um link canônico para ajudar seu pessoal de SEO :
fonte
A seguinte metatag, colocada entre a parte interna da cabeça, instruirá o navegador a redirecionar:
Substitua segundos pelo número de segundos a aguardar antes do redirecionamento e substitua o URL pelo URL para o qual você deseja redirecionar.
Como alternativa, você pode redirecionar com JavaScript. Coloque isso dentro de uma tag de script em qualquer lugar da página:
fonte
Este é um resumo de todas as respostas anteriores, além de uma solução adicional usando o HTTP Refresh Header via .htaccess
1. Cabeçalho de Atualização HTTP
Primeiro de tudo, você pode usar .htaccess para definir um cabeçalho de atualização como este
Este é o equivalente "estático" do uso da
header()
função no PHPObserve que esta solução não é suportada por todos os navegadores.
2. JavaScript
Com um URL alternativo :
Sem um URL alternativo:
Via jQuery:
3. Atualização Meta
Você pode usar a atualização meta quando dependências no JavaScript e nos cabeçalhos de redirecionamento forem indesejados
Com um URL alternativo:
Sem um URL alternativo:
Usando
<noscript>
:Opcionalmente
Conforme recomendado por Billy Moon, você pode fornecer um link de atualização caso algo dê errado:
Se você não for redirecionado automaticamente:
<a href='http://example.com/alternat_url.html'>Click here</a>
Recursos
Meta refresh da Wikipedia
O impacto no desempenho do META REFRESH
Atualizar (recarregar) uma página uma vez usando o jQuery?
fonte
setTimeout
com uma corda. Passe uma função em seu lugar.Seria melhor configurar um redirecionamento 301 . Consulte o artigo 301 das Ferramentas para webmasters do Google redireciona .
fonte
Se você deseja seguir os padrões da web modernos, evite meta-redirecionamentos HTML simples. Se você não conseguir criar o código do lado do servidor, escolha o redirecionamento JavaScript .
Para oferecer suporte a navegadores desativados em JavaScript, adicione uma linha de redirecionamento de HTML a um
noscript
elemento. Onoscript
meta redirecionamento aninhado combinado com ocanonical
tag também ajudará na classificação do seu mecanismo de pesquisa.Se você deseja evitar loops de redirecionamento, use o comando
location.replace()
função JavaScript.Um código de redirecionamento de URL do lado do cliente adequado é semelhante a este (com um Internet Explorer 8 e correção mais baixa e sem demora):
fonte
<meta http-equiv="refresh"
foi reprovado pelo W3C.Você pode usar um "redirecionamento" META :
ou redirecionamento JavaScript (observe que nem todos os usuários têm o JavaScript ativado, portanto, sempre prepare uma solução de backup para eles)
Mas prefiro usar o mod_rewrite , se você tiver a opção.
fonte
Assim que a página é carregada, a
init
função é acionada e a página é redirecionada:fonte
Coloque o seguinte código entre as marcas <HEAD> e </HEAD> do seu código HTML:
O código de redirecionamento HTML acima redirecionará seus visitantes para outra página da web instantaneamente. A
content="0;
pode ser alterado para o número de segundos que você deseja que o navegador espera antes de redirecionamento.fonte
Coloque o seguinte código na
<head>
seção:fonte
Encontrei um problema ao trabalhar com um aplicativo jQuery Mobile , onde, em alguns casos, minha tag de cabeçalho Meta não conseguia um redirecionamento corretamente (o jQuery Mobile não lê automaticamente os cabeçalhos de cada página, portanto, colocar o JavaScript também é ineficaz, a menos que o envolva complexidade). Eu achei a solução mais fácil nesse caso foi colocar o redirecionamento JavaScript diretamente no corpo do documento, da seguinte maneira:
Isso parece funcionar em todos os casos para mim.
fonte
A maneira simples que funciona para todos os tipos de páginas é apenas adicionar uma
meta
tag na cabeça:fonte
Você deve usar JavaScript. Coloque o seguinte código em suas tags de cabeçalho:
fonte
Você pode redirecionar automaticamente pelo código de status HTTP 301 ou 302.
Para PHP:
fonte
Eu uso um script que redireciona o usuário de index.html para o URL relativo da Página de login
fonte
Apenas para uma boa medida:
Verifique se não há ecos acima do script, caso contrário ele será ignorado. http://php.net/manual/en/function.header.php
fonte
Basta usar o evento onload da tag body:
fonte
Motor de barbear por um atraso de 5 segundos:
fonte
fonte
Você não precisa de nenhum código JavaScript para isso. Escreva isso na
<head>
seção da página HTML:Assim que a página carregar em 0 segundos, você poderá acessar sua página.
fonte
Tanto quanto eu os entendo, todos os métodos que vi até agora para esta pergunta parecem adicionar o local antigo à história. Para redirecionar a página, mas não tenho o local antigo no histórico, eu uso o
replace
método:fonte
Esta é uma solução de redirecionamento com tudo o que eu queria, mas não consegui encontrar em um bom snippet limpo para cortar e colar.
Este trecho tem várias vantagens:
Como usar:
Se você migrou um site inteiro, no servidor antigo, pare o site original e crie outro com esse arquivo como o arquivo index.html padrão na pasta raiz. Edite as configurações do site para que qualquer erro 404 seja redirecionado para esta página index.html. Isso captura qualquer pessoa que acessa o site antigo com um link em uma página de nível inferior, etc.
Agora vá para a tag de script de abertura e edite os endereços da web do site antigo e do novo site e altere o valor de segundos conforme necessário.
Salve e inicie seu site. Trabalho feito - hora de tomar um café.
fonte
Redirecione usando JavaScript,
<noscript>
caso JS esteja desativado.fonte
Use este código:
Por favor, preste atenção: coloque-o na etiqueta da cabeça.
fonte
Você pode fazer isso em javascript:
fonte
Você pode usar isso
fonte