Domanda

È possibile impostare una pagina HTML di base per reindirizzare a un'altra pagina al caricamento?

È stato utile?

Soluzione

Prova a usare:

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

Nota: posizionarlo nella sezione testa.

Inoltre per i browser più vecchi se si aggiunge un collegamento rapido nel caso in cui non si aggiorni correttamente:

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

Apparirà come

Reindirizzare

Questo ti permetterà comunque di arrivare a dove stai andando con un clic aggiuntivo.

Altri suggerimenti

Userei entrambi meta, e Codice JavaScript e avrebbe un link per ogni evenienza.

<!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>

Per completezza, penso che il modo migliore, se possibile, sia utilizzare i reindirizzamenti del server, quindi invia un 301 Codice di stato. Questo è facile da fare tramite .htaccess file utilizzando Apache, o tramite numerosi plugin usando WordPress. Sono sicuro che ci sono anche plugin per tutti i principali sistemi di gestione dei contenuti. Inoltre, CPanel ha una configurazione molto semplice per i reindirizzamenti 301 se lo hai installato sul tuo server.

JavaScript

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

Meta tag

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

Vorrei anche Aggiungi un link canonico per aiutare il tuo Seo le persone:

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

Questo è un riassunto di ogni risposta precedente più una soluzione aggiuntiva utilizzando l'intestazione di aggiornamento HTTP tramite .htaccess

1. Testa di aggiornamento HTTP

Prima di tutto, puoi usare .Htaccess per impostare un'intestazione di aggiornamento come questa

Header set Refresh "3"

Questo è l'equivalente "statico" dell'uso del header() funzione in PHP

header("refresh: 3;");

Si noti che questa soluzione non è supportata da ogni browser.

2. JavaScript

Con un alternativo URL:

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

Senza un URL alternativo:

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

Via jQuery:

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

3. Meta Aggiornamento

È possibile utilizzare il meta di aggiornamento quando le dipendenze da javascript e le intestazioni reindirizzate sono indesiderate

Con un URL alternativo:

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

Senza un URL alternativo:

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

Usando <noscript>:

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

Facoltativamente

Come raccomandato da Billy Moon, è possibile fornire un collegamento di aggiornamento nel caso in cui qualcosa vada storto:

Se non sei reindirizzato automaticamente: <a href='http://example.com/alternat_url.html'>Click here</a>

Risorse

Il seguente meta tag, posizionato tra all'interno della testa, dirà al browser di reindirizzare:

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

Sostituire secondi con il numero di secondi da attendere prima che reindirizza e sostituisci l'URL con l'URL in cui si desidera reindirizzare.

In alternativa, puoi reindirizzare con JavaScript. Posiziona questo all'interno di un tag di script ovunque sulla pagina:

window.location = "URL"

Sarebbe meglio impostare un 301 reindirizzamento. Vedi l'articolo di Google Webmaster Tools 301 reindirizzamenti.

Se non vedi l'ora di seguire gli standard Web moderni, dovresti evitare semplici reindirizzamenti HTML. Se non riesci a creare codice lato server, dovresti scegliere Reindirizzamento JavaScript invece.

Per supportare i browser disordinati JavaScript Aggiungi una linea di reindirizzamento HTML a noscript elemento. Il noscript Meta reindirizzamento nidificato combinato con il canonical Il tag aiuterà anche le classifiche dei motori di ricerca.

Se desideri evitare i loop di reindirizzamento, dovresti usare il location.replace() Funzione javascript.

Un lato cliente adeguato Reindirizzamento URL Il codice sembra così (con un Explorer Internet 8 e una correzione inferiore e senza ritardo):

<!-- 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 -->

Potresti usare un Meta "reindirizzare":

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

o JavaScript Reindirizza (Nota che non tutti gli utenti hanno abilitato JavaScript, quindi prepara sempre una soluzione di backup per loro)

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

Ma preferirei consigliarmi di usare mod_rewrite, se hai l'opzione.

Non appena la pagina si carica, il init La funzione viene sparata e la pagina viene reindirizzata:

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

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

Posizionare il seguente codice tra ilu003CHEAD> eu003C/HEAD> Tag del tuo codice HTML:

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

Il codice di reindirizzamento HTML sopra reindirirà immediatamente i tuoi visitatori in un'altra pagina Web. Il content="0; può essere modificato nel numero di secondi in cui si desidera che il browser attenda prima di reindirizzare.

Inserisci il seguente codice nel file <head> sezione:

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

Ho trovato un problema mentre lavoravo con a jQuery mobile Applicazione, in cui in alcuni casi il mio tag di intestazione non otterrebbe correttamente un reindirizzamento (JQuery Mobile non legge automaticamente le intestazioni per ogni pagina, quindi mettere JavaScript è anche inefficace se non avvolgendolo in complessità). Ho scoperto che la soluzione più semplice in questo caso è stata quella di mettere il reindirizzamento JavaScript direttamente nel corpo del documento, come 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>

Questo sembra funzionare in ogni caso per me.

Il modo semplice che funziona per tutti i tipi di pagine è solo aggiungere un meta tag nella testa:

<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>

Dovresti usare JavaScript. Posiziona il seguente codice nei tag della testa:

<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>

È possibile reindirizzare automaticamente il codice di stato HTTP 301 o 302.

Per PHP:

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>

Solo per buona misura:

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

Assicurati che non ci siano echi sopra la sceneggiatura, altrimenti verrà ignorato.http://php.net/manual/en/function.header.php

Basta usare l'evento Onload del tag del corpo:

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

Uso uno script che reindirizza l'utente da index.html a parente URL della pagina di accesso

<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>

Motore a rasoio Per un ritardo di 5 secondi:

<meta http-equiv="Refresh"
         content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
<!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>

Non hai bisogno di alcun codice JavaScript per questo. Scrivi questo in <head> Sezione della pagina HTML:

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

Non appena la pagina si carica a 0 secondi, puoi andare alla tua pagina.

Per quanto li ho capiti, tutti i metodi che ho visto finora per questa domanda sembrano aggiungere la vecchia posizione alla storia. Per reindirizzare la pagina, ma non ho la vecchia posizione nella storia, uso il replace metodo:

<script>
    window.location.replace("http://example.com");
</script>

Questa è una soluzione di reindirizzamento con tutto ciò che volevo ma non sono riuscito a trovare in un bel frammento pulito da tagliare e incollare.

Questo frammento ha una serie di vantaggi:

  • Ti consente di catturare e conservare qualsiasi domanda di querystring che le persone hanno sul loro URL
  • Rende il collegamento poco QIUE per evitare la memorizzazione nella cache indesiderata
  • Ti consente di informare gli utenti dei nomi vecchi e nuovi del sito
  • mostra un conto alla rovescia impostabile
  • può essere utilizzato per i reindirizzamenti a link profondo mantenendo i parametri

Come usare:

Se si è migrato un intero sito, sul vecchio server arrestare il sito originale e crearne un altro con questo file come file indefinito indice.html nella cartella root. Modifica le impostazioni del sito in modo che qualsiasi errore 404 venga reindirizzato a questa pagina Index.html. Questo cattura chiunque acceda al vecchio sito con un link in una pagina sotto-livello ecc.

Ora vai al tag di script di apertura e modifica gli indirizzi Web OldSite e Newste e cambia il valore dei secondi secondo necessità.

Salva e inizia il tuo sito web. Lavoro fatto - tempo per un caffè.

<!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>

Usa questo codice:

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

Per favore presta attenzione: Mettilo nel tag testa.

Puoi farlo in JavaScript:

location = "url";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top