Omleiden vanaf een HTML-pagina

Is het mogelijk om een ​​eenvoudige HTML-pagina in te stellen om bij het laden om te leiden naar een andere pagina?


Antwoord 1, autoriteit 100%

Probeer het volgende te gebruiken:

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

Opmerking: plaats het in het hoofdgedeelte.

Bovendien voor oudere browsers als u een snelle link toevoegt voor het geval deze niet correct wordt vernieuwd:

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

Verschijnt als

Omleiding

Hierdoor kun je nog steeds met een extra klik komen waar je naartoe gaat.


Antwoord 2, autoriteit 51%

Ik zou zowel metaals JavaScript-codegebruiken en zou een link hebben voor het geval dat.

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

Voor de volledigheid denk ik dat de beste manier, indien mogelijk, is om serveromleidingen te gebruiken, dus stuur een 301 statuscode. Dit is eenvoudig te doen via .htaccess-bestanden met behulp van Apache, of via talloze plug-ins die WordPressgebruiken. Ik weet zeker dat er ook plug-ins zijn voor alle belangrijke contentmanagementsystemen. Ook heeft cPanel een zeer eenvoudige configuratie voor 301-omleidingen als je die op je server hebt geïnstalleerd.


Antwoord 3, autoriteit 6%

JavaScript

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

Metatag

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

Antwoord 4, autoriteit 2%

Ik zou ookeen canonieke link toevoegen om uw SEO-mensen te helpen:

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

Antwoord 5

De volgende metatag, geplaatst tussen de kop, zal de browser vertellen om om te leiden:

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

Vervang seconden door het aantal seconden dat moet worden gewacht voordat het wordt omgeleid en vervang de URL door de URL waarnaar u het wilt omleiden.

U kunt ook omleiden met JavaScript. Plaats dit in een scripttag ergens op de pagina:

window.location = "URL"

Antwoord 6

Dit is een samenvatting van alle eerdere antwoorden plus een extra oplossing met HTTP Refresh Header via .htaccess

1. HTTP-koptekst vernieuwen

Allereerst kun je .htaccess gebruiken om een ​​refresh-header als deze in te stellen

Header set Refresh "3"

Dit is het “statische” equivalent van het gebruik van de functie header()in PHP

header("refresh: 3;");

Houd er rekening mee dat deze oplossing niet door elke browser wordt ondersteund.

2. JavaScript

Met een alternatieve URL:

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

Zonder een alternatieve URL:

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

Via jQuery:

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

3. Meta vernieuwen

U kunt meta refresh gebruiken wanneer afhankelijkheden van JavaScript en omleidingsheaders ongewenst zijn

Met een alternatieve URL:

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

Zonder een alternatieve URL:

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

Gebruik <noscript>:

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

Optioneel

Zoals aanbevolen door Billy Moon, kun je een verversingslink geven voor het geval er iets misgaat:

Als u niet automatisch wordt omgeleid: <a href='http://example.com/alternat_url.html'>Click here</a>

Bronnen


Antwoord 7

Als je ernaar uitkijkt om moderne webstandaarden te volgen, moet je gewone HTML-meta-omleidingen vermijden. Als u geen server-side code kunt maken, moet u in plaats daarvan JavaScript-omleidingkiezen.

Om JavaScript-uitgeschakelde browsers te ondersteunen, voegt u een HTML-meta-omleidingsregel toe aan een noscript-element. De noscriptgeneste meta-omleiding in combinatie met de canonical-tag zal ook helpen bij het rangschikken van uw zoekmachine.

Als u omleidingslussen wilt vermijden, moet u de JavaScript-functie location.replace()gebruiken.

Een goede client-side URL-omleidingcode ziet er als volgt uit (met een Internet Explorer 8 en lagere fix en zonder vertraging):

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

Antwoord 8

Het zou beter zijn om een ​​301-omleidingin te stellen. Zie het Google Webmaster Tools-artikel 301 omleidingen.


Antwoord 9

Je zou een META“omleiding” kunnen gebruiken:

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

of JavaScript-omleiding (merk op dat niet alle gebruikers JavaScript hebben ingeschakeld, dus bereid altijd een back-upoplossing voor hen voor)

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

Maar ik raad liever aan om mod_rewritete gebruiken, als je de mogelijkheid hebt.


Antwoord 10

Zodra de pagina wordt geladen, wordt de functie initgeactiveerd en wordt de pagina omgeleid:

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

Antwoord 11

Plaats de volgende code tussen de <HEAD> en </HEAD> tags van uw HTML-code:

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

De bovenstaande HTML-omleidingscode leidt uw bezoekers onmiddellijk naar een andere webpagina. De content="0;kan worden gewijzigd in het aantal seconden dat je wilt dat de browser wacht voordat hij wordt omgeleid.


Antwoord 12

Plaats de volgende code in het gedeelte <head>:

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

Antwoord 13

Ik heb een probleem gevonden tijdens het werken met een jQuery Mobile-toepassing, waarbij in sommige gevallen mijn Meta header-tag zou een omleiding niet correct bereiken (jQuery Mobile leest de headers niet automatisch voor elke pagina, dus JavaScript daar plaatsen is ook ineffectief, tenzij het ingewikkeld wordt). Ik vond de gemakkelijkste oplossing in dit geval om de JavaScript-omleiding als volgt rechtstreeks in de hoofdtekst van het document te plaatsen:

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

Dit lijkt voor mij in alle gevallen te werken.


Antwoord 14

De eenvoudige manier die voor alle soorten pagina’s werkt, is door een meta-tag in de kop toe te voegen:

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

Antwoord 15

Je kunt automatisch omleiden via HTTP-statuscode 301 of 302.

Voor PHP:

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

Antwoord 16

Ik gebruik een script dat de gebruiker omleidt van index.html naar de relatieveurl van de inlogpagina

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

Antwoord 17

U moet JavaScript gebruiken. Plaats de volgende code in je head-tags:

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

Antwoord 18

Voor de goede orde:

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

Zorg ervoor dat er geen echo’s boven het script staan, anders wordt het genegeerd.
http://php.net/manual/en/function.header.php


Antwoord 19

Gebruik gewoon de onload-gebeurtenis van de body-tag:

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

Antwoord 20

Razor-enginevoor een vertraging van 5 seconden:

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

Antwoord 21

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

Antwoord 22

Hiervoor heeft u geen JavaScript-code nodig. Schrijf dit in de <head>sectie van de HTML-pagina:

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

Zodra de pagina na 0 seconden is geladen, kun je naar je pagina gaan.


Antwoord 23

Voor zover ik ze begrijp, lijken alle methoden die ik tot nu toe voor deze vraag heb gezien de oude locatie aan de geschiedenis toe te voegen. Om de pagina om te leiden, maar de oude locatie niet in de geschiedenis te hebben, gebruik ik de replacemethode:

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

Antwoord 24

Dit is een omleidingsoplossing met alles wat ik wilde, maar niet kon vinden in een mooi schoon fragment om te knippen & Plakken.

Dit fragment heeft een aantal voordelen:

  • laat je alle querystring-params die mensen op hun url hebben, vangen en behouden
  • maakt de link uniek om ongewenste caching te voorkomen
  • laat u gebruikers informeren over de oude en nieuwe sitenamen
  • toont een instelbare aftelling
  • kan worden gebruikt voor deep-link-omleidingen als bewaarparameters

Hoe te gebruiken:

Als je een hele site hebt gemigreerd, stop dan op de oude server de oorspronkelijke site en maak een andere met dit bestand als het standaard index.html-bestand in de hoofdmap. Bewerk de site-instellingen zodat elke 404-fout wordt omgeleid naar deze index.html-pagina. Dit vangt iedereen die toegang heeft tot de oude site met een link naar een pagina op een lager niveau, enz.

Ga nu naar de openingsscript-tag en bewerk de oldsite- en newSite-webadressen en wijzig de secondenwaarde indien nodig.

Sla uw website op en start deze. Klus geklaard – tijd voor een kopje koffie.

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

Antwoord 25

Je kunt het in javascript doen:

location = "url";

LEAVE A REPLY

Please enter your comment!
Please enter your name here

thirteen + 1 =

Other episodes