Ist es möglich, eine einfache HTML-Seite einzurichten, um beim Laden auf eine andere Seite umzuleiten?
Ist es möglich, eine einfache HTML-Seite einzurichten, um beim Laden auf eine andere Seite umzuleiten?
Antworten:
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 Quicklink hinzufügen, falls dieser nicht korrekt aktualisiert wird:
<p><a href="http://example.com/">Redirect</a></p>
Wird als angezeigt
Auf diese Weise können Sie mit einem zusätzlichen Klick immer noch dorthin gelangen, wo Sie hin möchten.
0
Mittel zum Aktualisieren nach 0 Sekunden. Möglicherweise möchten Sie dem Benutzer mehr Zeit geben, um zu wissen, was passiert.
Ich würde sowohl Meta- als auch JavaScript-Code verwenden und für alle Fälle einen Link haben.
<!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. Senden Sie daher einen 301- Statuscode. Dies ist einfach über .htaccess
Dateien mit Apache oder über zahlreiche Plugins mit WordPress zu tun . Ich bin sicher, dass es auch Plugins für alle wichtigen Content-Management-Systeme gibt. Außerdem bietet cPanel eine sehr einfache Konfiguration für 301-Weiterleitungen, wenn Sie diese auf Ihrem Server installiert haben.
body
Tags und ähnliches fallen zu lassen. 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.
click here
wird auch nicht empfohlen, einen Link zu verwenden, da der Bildschirmleser schwieriger zu navigieren ist. Links sollten sich in einem Text befinden, der das Ziel beschreibt, damit der Benutzer weiß, wo er ankommt, bevor er ihm folgt, und wie auch immer er mit ihm interagiert.
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"/>
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 muss, bevor sie umgeleitet werden, und ersetzen Sie die URL durch die URL, zu der sie umleiten soll.
Alternativ können Sie mit JavaScript umleiten. Platzieren Sie dies in einem Skript-Tag an einer beliebigen Stelle auf der Seite:
window.location = "URL"
Dies ist eine Zusammenfassung aller vorherigen Antworten sowie eine zusätzliche Lösung, die den HTTP-Aktualisierungsheader über .htaccess verwendet
1. HTTP-Aktualisierungsheader
Zunächst können Sie mit .htaccess einen solchen Aktualisierungsheader festlegen
Header set Refresh "3"
Dies ist das "statische" Äquivalent zur Verwendung der header()
Funktion in PHP
header("refresh: 3;");
Beachten Sie, dass diese Lösung nicht von jedem Browser unterstützt wird.
2. JavaScript
Mit einer 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 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 von <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:
Wenn Sie nicht automatisch umgeleitet werden: <a href='http://example.com/alternat_url.html'>Click here</a>
Ressourcen
setTimeout
mit einer Zeichenfolge auf. Übergeben Sie stattdessen eine Funktion.
Es wäre besser, eine 301-Umleitung einzurichten . Weitere Informationen finden Sie im Artikel 301 zu den Webmaster-Tools von Google .
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 stattdessen JavaScript-Umleitung wählen .
Um JavaScript-deaktivierte Browser zu unterstützen, fügen Sie einem noscript
Element eine HTML-Metaumleitungszeile hinzu . Die noscript
verschachtelte Meta-Weiterleitung in Kombination mit dem canonical
Tag hilft auch Ihren Suchmaschinen-Rankings.
Wenn Sie Umleitungsschleifen vermeiden möchten, sollten Sie die location.replace()
JavaScript-Funktion verwenden.
Ein korrekter clientseitiger URL-Umleitungscode sieht folgendermaßen aus (mit einem Internet Explorer 8 und niedrigerem 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 -->
<meta http-equiv="refresh"
das W3C nicht mehr unterstützt.
Sie könnten eine META "Weiterleitung" verwenden:
<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />
oder JavaScript- Umleitung (beachten Sie, dass nicht alle Benutzer JavaScript aktiviert haben, bereiten Sie daher immer eine Sicherungslösung für sie vor)
<script language="javascript">
window.location = "http://new.example.com/address";
</script>
Aber ich würde lieber mod_rewrite empfehlen , wenn Sie die Option haben.
Platzieren Sie den folgenden Code zwischen den Tags <HEAD> und </ HEAD> Ihres HTML-Codes:
<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. Dies content="0;
kann auf die Anzahl der Sekunden geändert werden, die der Browser warten soll, bevor er umgeleitet wird.
Bei der Arbeit mit einer jQuery Mobile- Anwendung ist ein Problem aufgetreten , bei dem in einigen Fällen mein Meta-Header-Tag eine Umleitung nicht ordnungsgemäß erreicht hat (jQuery Mobile liest Header nicht automatisch für jede Seite, sodass das Einfügen von JavaScript auch dann ineffektiv ist, wenn es nicht eingewickelt wird Komplexität). Ich fand die einfachste Lösung in diesem Fall, 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>
Das scheint in jedem Fall für mich zu funktionieren.
Die einfache Methode, die für alle Arten von Seiten 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>
Sie sollten JavaScript verwenden. Fügen Sie den folgenden Code in Ihre Kopfmarken ein:
<script type="text/javascript">
window.location.assign("http://www.example.com")
</script>
Sie können automatisch über den HTTP-Statuscode 301 oder 302 umleiten.
Für PHP:
<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.redirect-url.com");
?>
Ich verwende ein Skript, das den Benutzer von index.html zur relativen 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>
Nur für ein gutes Maß:
<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>
Stellen Sie sicher, dass sich über dem Skript keine Echos befinden, da diese sonst ignoriert werden. http://php.net/manual/en/function.header.php
Verwenden Sie einfach das Onload-Ereignis des Body-Tags:
<body onload="window.location = 'http://example.com/'">
Rasiermotor für eine Verzögerung von 5 Sekunden:
<meta http-equiv="Refresh"
content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
Sie benötigen hierfür keinen JavaScript-Code. Schreiben Sie dies in den <head>
Abschnitt der HTML-Seite:
<meta http-equiv="refresh" content="0; url=example.com" />
Sobald die Seite nach 0 Sekunden geladen ist, können Sie zu Ihrer Seite wechseln.
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 folgende replace
Methode:
<script>
window.location.replace("http://example.com");
</script>
Dies ist eine Weiterleitungslösung mit allem, was ich wollte, aber nicht in einem schönen, sauberen Snippet zum Ausschneiden und Einfügen finden konnte.
Dieses Snippet hat eine Reihe von Vorteilen:
Wie benutzt man:
Wenn Sie eine gesamte Site migriert haben, stoppen Sie auf dem alten Server die ursprüngliche Site und erstellen Sie eine andere mit dieser Datei als Standarddatei index.html im Stammordner. Bearbeiten Sie die Site-Einstellungen so, dass alle 404-Fehler auf diese index.html-Seite umgeleitet werden. Dies fängt jeden auf, der auf die alte Site mit einem Link zu einer untergeordneten Seite usw. zugreift.
Gehen Sie nun zum Eröffnungsskript-Tag, bearbeiten Sie die Webadressen oldsite und newSite 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> 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>
Umleiten mit JavaScript, <noscript>
falls JS deaktiviert ist.
<script>
window.location.replace("https://google.com");
</script>
<noscript>
<a href="https://google.com">Click here if you are not redirected automatically.</a>
</noscript>
Verwenden Sie diesen Code:
<meta http-equiv="refresh" content="0; url=https://google.com/" />
Bitte beachten Sie: Stecken Sie es in die Kopfmarke.
Sie können es in Javascript tun:
location = "url";
Sie können dies verwenden
<meta http-equiv="refresh" content="0; url=http://newpage.com/" />