Ist es möglich, eine einfache HTML-Seite so einzurichten, dass sie beim Laden auf eine andere Seite umgeleitet wird?
So leiten Sie eine HTML-Seite beim Laden auf eine andere um
Chobo
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
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
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
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
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"/>
RafaSashi
Dies ist eine Zusammenfassung aller vorherigen Antworten sowie eine zusätzliche Lösung mit HTTP Refresh Header über .htaccess
-
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 PHPheader("refresh: 3;");
Beachten Sie, dass diese Lösung nicht von jedem Browser unterstützt wird.
-
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>
-
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
-
Eine Seite einmal mit jQuery aktualisieren (neu laden)?
-
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
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
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"
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