So leiten Sie eine HTML-Seite beim Laden auf eine andere um

Lesezeit: 8 Minuten

Benutzeravatar von chobo
Chobo

Ist es möglich, eine einfache HTML-Seite so einzurichten, dass sie beim Laden auf eine andere Seite umgeleitet wird?

  • Verwenden Sie .htaccess oder ein IIS-Äquivalent, um eine serverseitige Umleitung durchzuführen. Auf diese Weise funktioniert die Weiterleitung auch dann noch, wenn Ihre physische Seite verschwindet.

    – flitzen

    13. November 2017 um 11:29 Uhr

  • Dieses insider.zone-Tool hat meine Weiterleitungen in Kleinbuchstaben geändert, was zu 404-Fehlern führte. Außerdem gibt es keine Möglichkeit, denjenigen zu kontaktieren, der die Seite darüber erstellt hat.

    – Dan Jacobson

    23. Januar 2019 um 7:42 Uhr


Benutzeravatar von Valerij
Walerij

Versuchen Sie es mit:

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

Hinweis: Legen Sie es in die <head> Sektion.

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

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

Wird erscheinen als

Umleiten

So gelangen Sie immer noch mit einem zusätzlichen Klick dorthin, wo Sie hinwollen.

  • Das World Wide Web Consortium (W3C) rät von der Verwendung von Meta Refresh ab. Ref: en.wikipedia.org/wiki/Meta_refresh. Daher wird empfohlen, stattdessen die Serverumleitung zu verwenden. JavaScript-Umleitungen funktionieren möglicherweise nicht auf allen Mobiltelefonen, da JavaScript möglicherweise deaktiviert ist.

    – Neunter Sinn

    30. Juli 2012 um 6:14 Uhr

  • FYI, die 0 bedeutet, nach 0 Sekunden zu aktualisieren. Möglicherweise möchten Sie dem Benutzer etwas mehr Zeit geben, um zu erfahren, was passiert.

    – Denis

    11. September 2013 um 20:34 Uhr

  • Der Kommentar von @NinethSense lässt die Metaaktualisierung wie eine JavaScript-Weiterleitung erscheinen. Meta-Refresh ist nicht JS und funktioniert auch, wenn JS deaktiviert ist.

    – Druska

    28. Dezember 2013 um 19:47 Uhr


  • @NinethSense wird von einer Aktualisierung abgeraten (“da eine unerwartete Aktualisierung Benutzer desorientieren kann”), aber die Frage betrifft die Umleitung.

    – Kön.

    4. März 2014 um 22:15 Uhr


  • Dennis – Ich denke, der Benutzer wird ohne Verzögerung eine bessere Vorstellung davon haben, was passiert – er hat vermutlich gerade auf einen Link oder ähnliches geklickt, also wird es geladen. Sie müssen nicht wissen, dass es sich um eine Weiterleitung handelt. Ich denke, es wäre verwirrender, wenn es geladen wird, dann gibt es eine Verzögerung und dann passiert etwas anderes.

    – bdsl

    11. Juni 2015 um 10:57 Uhr

Benutzeravatar von Billy Moon
Billy Mond

Ich würde beide verwenden Metaund JavaScript-Code und hätte für alle Fälle einen Link.

<!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 Serverumleitungen ist, also sende a 301 Statuscode. Das geht ganz einfach über .htaccess Dateien verwenden Apacheoder über zahlreiche Plugins mit WordPress. Ich bin mir sicher, dass es auch Plugins für alle wichtigen Content-Management-Systeme gibt. Außerdem hat cPanel eine sehr einfache Konfiguration für 301-Weiterleitungen, wenn Sie diese auf Ihrem Server installiert haben.

  • Diese Weiterleitungsseite kann mit HTML5 viel prägnanter sein: pastebin.com/2qmfUZMk (das in allen Browsern funktioniert und die w3c-Validierung besteht)

    – enyo

    29. April 2013 um 13:28 Uhr

  • @enyo Ich bin kein großer Fan davon, das fallen zu lassen body Tags und dergleichen. Vielleicht validiert es und funktioniert vielleicht in gängigen Browsern. Ich bin sicher, dass es einige Randfälle gibt, die Probleme verursachen, und der Nutzen scheint gering zu sein.

    – Billy Mond

    29. April 2013 um 15:52 Uhr

  • @Fricker, weil sie möglicherweise nicht klicken. Sie steuern möglicherweise per Sprache, tippen oder navigieren auf unbekannte Weise. Es ist eine Zugänglichkeitsrichtlinie, Standards für Steuerelemente zu befolgen, wie z. B. die Verwendung von Standard-HTML-A-Attributen für Links, und es als Link zu betrachten und zu kommunizieren, und nicht vorzuschreiben, wie jemand damit interagieren muss. Auch haben click here auf einem Link wird nicht empfohlen, da der Screenreader dann schwieriger zu navigieren ist. Links sollten Text sein, der das Ziel beschreibt, damit der Benutzer weiß, wo er ankommt, bevor er ihm folgt, und wie er damit interagiert.

    – Billy Mond

    5. Februar 2014 um 18:45 Uhr

  • @BillyMoon, eigentlich wurde die Bedeutung von “Klick” bereits überladen, um auch all diese Bedeutungen einzuschließen. “Klicken” wird gut tun.

    – Schrittmacher

    21. Oktober 2014 um 10:45 Uhr


  • @BillyMoon Unter welchen gelegentlichen Umständen ignoriert der Browser die Metaaktualisierung des Wertes 0? Vielen Dank!

    – Gal Margalit

    4. September 2015 um 13:38 Uhr

Benutzeravatar von amit_g
amit_g

JavaScript

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

Meta-Tag

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

  • Scheint nicht für eine HTML-Seite in der Angular-App zu funktionieren. Gibt es etwas, um es zu beheben?

    – RedBottleSanitizer

    14. Februar 2022 um 22:33 Uhr

Benutzeravatar von lrkwz
lrkwz

Ich würde zudem füge einen kanonischen Link hinzu, um dir zu helfen SEO Menschen:

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

Benutzeravatar von RafaSashi
RafaSashi

Dies ist eine Zusammenfassung aller vorherigen Antworten sowie eine zusätzliche Lösung mit HTTP Refresh Header über .htaccess

  1. HTTP-Aktualisierungsheader

    Zunächst einmal können Sie mit .htaccess einen Refresh-Header wie diesen setzen

    Header set Refresh "3"
    

    Dies ist das “statische” Äquivalent zur Verwendung von header() Funktion ein PHP

    header("refresh: 3;");
    

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

  2. JavaScript

    Mit Stellvertreter URL:

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

    Ohne alternative URL:

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

    Verwendung der window Objekt:

    <script>
        window.location.reload(true);
     </script>
    
  3. Meta-Aktualisierung

    Sie können die Metaaktualisierung verwenden, wenn Abhängigkeiten von JavaScript und Umleitungsheadern 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">
    

    Verwenden <noscript>:

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

Optional

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

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

Ressourcen

  • Ruf nicht an setTimeout mit einer Schnur. Übergeben Sie stattdessen eine Funktion.

    – Oriol

    28. November 2016 um 20:07 Uhr

  • “HTTP-Refresh-Header über .htaccess” – warum ist es relevant, nach der Umleitung von der HTML-Seite zu fragen?

    – Verringerung der Aktivität

    11. Juli 2018 um 8:01 Uhr

  • Wenn Sie eine Umleitung von den HTTP-Headern (wie in .htaccess) sollten Sie eine 301- oder 302-Weiterleitung verwenden, keine Aktualisierung.

    – Simon Osten

    7. Oktober 2021 um 6:13 Uhr

Benutzeravatar von Paul
Paul

Wenn Sie sich darauf freuen, modernen Webstandards zu folgen, sollten Sie einfache HTML-Meta-Weiterleitungen vermeiden. Wenn Sie keinen serverseitigen Code erstellen können, sollten Sie wählen JavaScript-Umleitung stattdessen.

Um JavaScript-deaktivierte Browser zu unterstützen, fügen Sie eine HTML-Meta-Umleitungszeile zu a hinzu noscript Element. Die noscript verschachtelte Meta-Umleitung kombiniert mit der canonical Tag wird auch Ihren Suchmaschinen-Rankings helfen.

Wer Umleitungsschleifen vermeiden möchte, sollte die verwenden location.replace() JavaScript-Funktion.

Eine richtige Client-Seite URL-Umleitung Code sieht so aus (mit einem Internet Explorer 8 und 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 -->

  • Ruf nicht an setTimeout mit einer Schnur. Übergeben Sie stattdessen eine Funktion.

    – Oriol

    28. November 2016 um 20:07 Uhr

  • “HTTP-Refresh-Header über .htaccess” – warum ist es relevant, nach der Umleitung von der HTML-Seite zu fragen?

    – Verringerung der Aktivität

    11. Juli 2018 um 8:01 Uhr

  • Wenn Sie eine Umleitung von den HTTP-Headern (wie in .htaccess) sollten Sie eine 301- oder 302-Weiterleitung verwenden, keine Aktualisierung.

    – Simon Osten

    7. Oktober 2021 um 6:13 Uhr

Benutzeravatar von IS4
IS4

Das folgende Meta-Tag, das zwischen innerhalb des Kopfs platziert wird, 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 umgeleitet wird, und ersetzen Sie URL durch die URL, zu der umgeleitet werden soll.

Alternativ können Sie mit JavaScript umleiten. Platzieren Sie dies innerhalb eines script-Tags irgendwo auf der Seite:

window.location = "URL"

1441520cookie-checkSo leiten Sie eine HTML-Seite beim Laden auf eine andere um

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy