it-swarm.com.de

Weiterleitung von einer HTML-Seite

Ist es möglich, eine einfache HTML-Seite einzurichten, um beim Laden auf eine andere Seite umzuleiten?

1495
chobo

Versuchen Sie es mit:

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

Hinweis: Legen Sie es in den Kopfbereich.

Zusätzlich für ältere Browser, wenn Sie einen Schnelllink hinzufügen, falls dieser nicht korrekt aktualisiert wird:

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

Erscheint als

Weiterleiten

Auf diese Weise gelangen Sie mit einem zusätzlichen Klick immer noch dorthin, wohin Sie möchten.

2080
Valerij

Ich würde sowohl Meta als auch JavaScript-Code verwenden und würde einen Link haben nur für den Fall.

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

Der Vollständigkeit halber denke ich, dass der beste Weg, wenn möglich, die Verwendung von Server-Weiterleitungen ist. Senden Sie daher einen 1 -Statuscode. Dies ist einfach über .htaccess -Dateien mit Apache oder über zahlreiche Plugins mit WordPress möglich. Ich bin mir sicher, dass es auch Plugins für alle wichtigen Content-Management-Systeme gibt. CPanel bietet auch eine sehr einfache Konfiguration für 301-Weiterleitungen, wenn Sie diese auf Ihrem Server installiert haben.

1076
Billy Moon

JavaScript

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

Meta-Tag

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

Ich würde auch einen kanonischen Link hinzufügen, um Ihren SEO Leuten zu helfen:

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

Dies ist eine Zusammenfassung aller vorherigen Antworten plus einer zusätzlichen Lösung, die HTTP Refresh Header über .htaccess verwendet

1. HTTP Refresh Header

Zunächst können Sie mit .htaccess einen solchen Aktualisierungsheader festlegen

Header set Refresh "3"

Dies ist das "statische" Äquivalent zur Verwendung der Funktion header() in PHP

header("refresh: 3;");

Beachten Sie, dass diese Lösung nicht von jedem Browser unterstützt wird.

2. JavaScript

Mit einem alternativen URL :

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

Ohne alternative URL:

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

Über jQuery:

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

3. Meta Refresh

Sie können die Meta-Aktualisierung verwenden, wenn Abhängigkeiten von JavaScript und Umleitungs-Headern unerwünscht sind

Mit einer alternativen URL:

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

Ohne alternative URL:

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

<noscript> verwenden:

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

Optional

Wie von Billy Moon empfohlen, können Sie einen Aktualisierungslink bereitstellen, falls etwas schief geht:

Wenn Sie nicht automatisch weitergeleitet werden: <a href='http://example.com/alternat_url.html'>Click here</a>

Ressourcen

29
RafaSashi

Das folgende Meta-Tag, das sich zwischen dem Kopf befindet, weist den Browser an, umzuleiten:

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

Ersetzen Sie Sekunden durch die Anzahl der Sekunden, die gewartet werden soll, bevor die Weiterleitung erfolgt, und ersetzen Sie die URL durch die URL, zu der die Weiterleitung erfolgen soll.

Alternativ können Sie mit JavaScript umleiten. Platzieren Sie dies innerhalb eines Skript-Tags an einer beliebigen Stelle auf der Seite:

window.location = "URL"
27
Peter Olson

Es wäre besser, eine 1-Umleitung einzurichten. Lesen Sie den Artikel zu den Webmaster-Tools von Google 1 Weiterleitungen.

26
Alex K

Wenn Sie modernen Webstandards folgen möchten, sollten Sie einfache HTML-Meta-Weiterleitungen vermeiden. Wenn Sie keinen serverseitigen Code erstellen können, sollten Sie stattdessen JavaScript-Umleitung auswählen.

Fügen Sie zur Unterstützung von Browsern mit deaktiviertem JavaScript eine HTML-Meta-Umleitungszeile zu einem noscript -Element hinzu. Die noscript verschachtelte Meta-Weiterleitung in Kombination mit dem canonical -Tag hilft auch Ihrer Suchmaschinen-Rangliste.

Wenn Sie Umleitungsschleifen vermeiden möchten, sollten Sie die JavaScript-Funktion location.replace() verwenden.

Ein richtiger clientseitiger RL-Weiterleitung Code sieht so aus (mit einem Internet Explorer 8 und einem niedrigeren Fix und ohne Verzögerung):

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

Sie könnten ein META "redirect" verwenden:

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

oder JavaScript Redirect (Beachten Sie, dass nicht alle Benutzer JavaScript aktiviert haben. Bereiten Sie daher immer eine Backup-Lösung für sie vor.)

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

Aber ich würde eher die Verwendung von mod_rewrite empfehlen, wenn Sie die Option haben.

17
Czechnology

Sobald die Seite geladen ist, wird die Funktion init ausgelöst und die Seite umgeleitet:

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

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

Fügen Sie den folgenden Code zwischen die Tags <HEAD> und </ HEAD> Ihres HTML-Codes ein:

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

Der obige HTML-Weiterleitungscode leitet Ihre Besucher sofort auf eine andere Webseite weiter. Der content="0; kann auf die Anzahl der Sekunden geändert werden, die der Browser vor der Umleitung warten soll.

10
Muhammad Saqib

Fügen Sie den folgenden Code in den Abschnitt <head> ein:

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

Bei der Arbeit mit einer jQuery Mobile -Anwendung ist ein Problem aufgetreten. In einigen Fällen konnte mein Meta-Header-Tag keine ordnungsgemäße Umleitung erzielen ist auch unwirksam, wenn es nicht in Komplexität verpackt ist). In diesem Fall war es die einfachste Lösung, die JavaScript-Umleitung wie folgt direkt in den Hauptteil des Dokuments einzufügen:

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

Dies scheint in jedem Fall für mich zu funktionieren.

9
Scotsman

Die einfache Methode, die für alle Seitentypen funktioniert, besteht darin, ein meta -Tag in den Kopf einzufügen:

<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
P. BANERJEE

Sie sollten JavaScript verwenden. Fügen Sie den folgenden Code in Ihre Head Tags ein:

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

Sie können über den HTTP-Statuscode 301 oder 302 automatisch umleiten.

Für PHP:

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

Ich verwende ein Skript, das den Benutzer von index.html zu relativ url der Anmeldeseite umleitet

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

Verwenden Sie einfach das Onload-Ereignis des Body-Tags:

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

Nur aus gutem Grund:

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

Stellen Sie sicher, dass sich keine Echos über dem Skript befinden. Andernfalls wird es ignoriert. http://php.net/manual/en/function.header.php

6
Edward
<!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
PoM

Rasiermesser für eine Verzögerung von 5 Sekunden:

<meta http-equiv="Refresh"
         content="5; [email protected]("Search", "Home", new { id = @Model.UniqueKey }))">
5
JoshYates1980

Sie benötigen dazu keinen JavaScript-Code. Schreiben Sie dies in den Abschnitt <head> der HTML-Seite:

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

Sobald die Seite mit 0 Sekunden geladen wurde, können Sie zu Ihrer Seite wechseln.

4
Yash Jain

Soweit ich sie verstehe, scheinen alle Methoden, die ich bisher für diese Frage gesehen habe, den alten Ort in die Geschichte aufzunehmen. Um die Seite umzuleiten, aber nicht den alten Speicherort im Verlauf zu haben, verwende ich die replace -Methode:

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

Dies ist eine Redirect-Lösung mit allem, was ich wollte, aber nicht in einem Nice Clean-Snippet zum Ausschneiden und Einfügen finden konnte.

Dieses Snippet bietet eine Reihe von Vorteilen:

  • ermöglicht es Ihnen, alle QueryString-Parameter abzufangen und zu behalten, die Leute auf ihrer URL haben
  • macht den Link unqiue, um ungewolltes Caching zu vermeiden
  • mit dieser Option können Sie Benutzer über die alten und neuen Site-Namen informieren
  • zeigt einen einstellbaren Countdown
  • kann für Deep-Link-Weiterleitungen als Aufbewahrungsparameter verwendet werden

Wie benutzt man:

Wenn Sie eine gesamte Site migriert haben, stoppen Sie die ursprüngliche Site auf dem alten Server und erstellen Sie eine weitere mit dieser Datei als Standarddatei index.html im Stammordner. Bearbeiten Sie die Websiteeinstellungen so, dass alle 404-Fehler auf diese index.html-Seite umgeleitet werden. Dies fängt jeden auf, der über einen Link auf eine untergeordnete Seite usw. auf die alte Site zugreift.

Wechseln Sie nun zum öffnenden Skript-Tag, bearbeiten Sie die Webadressen der alten Site und der neuen Site und ändern Sie den Sekundenwert nach Bedarf.

Speichern und starten Sie Ihre Website. Arbeit erledigt - Zeit für einen Kaffee.

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

Verwenden Sie diesen Code:

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

Bitte beachten Sie: setzen Sie es in die Kopfmarke.

0
AmerllicA

Sie können es in Javascript tun:

location = "url";
0
GameMaster1928