Przekierowanie ze strony HTML

Czy jest możliwe skonfigurowanie podstawowej strony HTML, aby przekierować ją na inną stronę po załadowaniu?

Author: David Angulo, 2011-03-23

25 answers

Spróbuj użyć:

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

Uwaga: umieść go w sekcji głowy.

Dodatkowo dla starszych przeglądarek, jeśli dodasz Szybki link w przypadku, gdy nie odświeży się poprawnie:

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

Pojawi się jako

Redirect

To nadal pozwoli Ci dostać się tam, gdzie idziesz za pomocą dodatkowego kliknięcia.

 1952
Author: Valerij,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-21 09:31:35

Użyłbym zarówno meta , jak i kodu JavaScript i na wszelki wypadek miałbym 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>

Dla kompletności, myślę, że najlepszym sposobem, jeśli to możliwe, jest użycie przekierowań serwera, więc wyślij 301 kod statusu. Jest to łatwe do zrobienia za pomocą .htaccess plików za pomocą Apache, lub za pomocą licznych wtyczek za pomocą WordPress. Jestem pewien, że istnieją również wtyczki do wszystkich głównych systemów zarządzania treścią. Ponadto cPanel ma bardzo łatwą konfigurację dla przekierowań 301, jeśli masz to zainstalowane na serwerze.

 1018
Author: Billy Moon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-08 14:11:16

JavaScript

<script language="javascript">
    window.location.href = "http://example.com"
</script>

Meta tag

<meta http-equiv="refresh" content="0;url=http://example.com">
 111
Author: amit_g,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-19 18:32:46

Chciałbym również Dodać Link kanoniczny, aby pomóc twoim SEO ludziom:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
 40
Author: lrkwz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 19:10:00

Jest to suma wszystkich poprzednich odpowiedzi plus dodatkowe rozwiązanie za pomocą HTTP Refresh Header via .htaccess

1. Http Refresh Header

Po pierwsze, możesz użyć .htaccess, aby ustawić nagłówek refresh w ten sposób

Header set Refresh "3"

Jest to" statyczny " odpowiednik funkcji header() w PHP

header("refresh: 3;");

Zauważ, że to rozwiązanie nie jest obsługiwane przez każdą przeglądarkę.

2. JavaScript

Z alternatywny URL :

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

BEZ alternatywnego adresu URL:

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

Via jQuery:

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

3. Meta Refresh

Możesz użyć meta refresh, gdy zależności w JavaScript i nagłówki przekierowań są niechciane

Z alternatywnym adresem URL:

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

BEZ alternatywnego adresu URL:

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

Używając <noscript>:

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

Opcjonalnie

Zgodnie z zaleceniami Billy Moon, możesz podać link odświeżający w przypadek coś pójdzie nie tak:

Jeśli nie zostaniesz przekierowany automatycznie: <a href='http://example.com/alternat_url.html'>Click here</a>

Zasoby

 29
Author: RafaSashi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 08:45:31

Następujący znacznik meta, umieszczony między głowicą, powie przeglądarce, aby przekierowała:

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

Zastąp sekundy liczbą sekund, na które należy poczekać, zanim przekieruje, i zastąp adres URL adresem URL, na który ma być przekierowany.

Alternatywnie możesz przekierować za pomocą JavaScript. Umieść to wewnątrz znacznika skryptu w dowolnym miejscu na stronie:

window.location = "URL"
 27
Author: Peter Olson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 19:05:07

Lepiej byłoby skonfigurować 301 przekierowanie . Zobacz artykuł narzędzia dla webmasterów Google301 przekierowania.

 26
Author: Alex K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-26 12:38:09

Jeśli nie możesz się doczekać, aby podążać za nowoczesnymi standardami sieciowymi, powinieneś unikać zwykłych przekierowań meta HTML. Jeśli nie możesz utworzyć kodu po stronie serwera, powinieneś wybrać JavaScript redirect.

Aby Obsługiwać przeglądarki z wyłączoną obsługą JavaScript, dodaj linię meta-przekierowania HTML do elementu noscript. Zagnieżdżone przekierowanie meta w połączeniu z tagiem canonical pomoże również w rankingach w wyszukiwarkach.

Jeśli chcesz uniknąć pętli przekierowania, powinieneś użyć location.replace() Funkcja JavaScript.

Odpowiedni po stronie klienta URL redirect kod wygląda tak (z Internet Explorerem 8 i niższą poprawką i bez opóźnienia):

<!-- 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 -->
 24
Author: Patartics Milán,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 21:37:33

Możesz użyć META "redirect":

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

Lub JavaScript redirect (zauważ, że nie wszyscy użytkownicy mają włączoną obsługę JavaScript, więc zawsze przygotuj dla nich rozwiązanie do tworzenia kopii zapasowych)

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

Ale wolałbym użyć mod_rewrite , Jeśli masz taką opcję.

 17
Author: Czechnology,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-02 23:42:37

Gdy tylko strona zostanie załadowana, zostanie wywołana funkcja init i strona zostanie przekierowana:

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

    <body onload="init()">
    </body>
</html>
 14
Author: kkk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 19:08:31

Umieść następujący kod pomiędzy znacznikami

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

Powyższy kod HTML przekieruje odwiedzających do innej strony internetowej natychmiast. content="0; może zostać zmieniona na liczbę sekund, na którą przeglądarka ma czekać przed przekierowaniem.

 10
Author: Muhammad Saqib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-19 17:11:39

Umieść następujący kod w sekcji <head>:

<meta http-equiv="refresh" content="0; url=http://address/">
 9
Author: Sebi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-19 18:28:25

Znalazłem problem podczas pracy z jQuery Mobile aplikacji, gdzie w niektórych przypadkach mój tag nagłówka Meta nie osiągnie poprawnie przekierowanie (jQuery Mobile nie odczytuje nagłówków automatycznie dla każdej strony, więc umieszczenie tam JavaScript jest również nieskuteczne, chyba że zawijanie go w złożoności). Okazało się, że najprostszym rozwiązaniem w tym przypadku było umieszczenie przekierowania JavaScript bezpośrednio w treści dokumentu, w następujący sposób:

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

To wydaje się działać w każdym przypadku dla ja.

 9
Author: Scotsman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 19:07:29

Prosty sposób, który działa dla wszystkich typów stron, polega na dodaniu znacznika meta w głowicy:

<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
Author: P. BANERJEE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-03 15:22:44

Powinieneś używać JavaScript. Umieść następujący kod w tagach głowy:

<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>
 7
Author: kriscross07,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-13 22:25:49

Możesz automatycznie przekierować przez kod statusu HTTP 301 lub 302.

Dla PHP:

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>
 7
Author: Vô Vị,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-26 09:02:18

Tylko na miarę:

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

Upewnij się, że nad skryptem nie ma echa, w przeciwnym razie zostanie ono zignorowane. http://php.net/manual/en/function.header.php

 6
Author: Edward,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-28 13:27:19

Silnik Razor na opóźnienie 5 sekund:

<meta http-equiv="Refresh"
         content="5; [email protected]("Search", "Home", new { id = @Model.UniqueKey }))">
 5
Author: JoshYates1980,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 19:05:39
<!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
Author: Pirate of Marmara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 02:35:43

Wystarczy użyć zdarzenia onload tagu body:

<body onload="window.location = 'http://example.com/'">
 5
Author: pat capozzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-19 17:14:52

Używam skryptu, który przekierowuje użytkownika z indeksu.html do strony logowania

<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>
 5
Author: Zolfaghari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-12 11:23:59

Nie potrzebujesz do tego kodu JavaScript. Napisz to w sekcji <head> strony HTML:

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

Jak TYLKO strona ładuje się w 0 sekund, możesz przejść do swojej strony.

 4
Author: Yash Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-21 11:20:30

O ile je rozumiem, wszystkie metody, jakie widziałem do tej pory dla tego pytania, wydają się dodawać stare położenie do historii. Aby przekierować stronę, ale nie mam starej lokalizacji w historii, używam metody replace:

<script>
    window.location.replace("http://example.com");
</script>
 3
Author: Paul Ogilvie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-19 17:15:44

Jest to rozwiązanie przekierowania ze wszystkim, co chciałem, ale nie mogłem znaleźć w ładnym czystym fragmencie do cięcia i wklejania.

Ten fragment ma wiele zalet:

  • pozwala złapać i zachować wszelkie querystring params ludzie mają na ich url
  • sprawia, że link unqiue, aby uniknąć niechcianego buforowania
  • pozwala informować użytkowników o starych i nowych nazwach stron
  • pokazuje ustawialne odliczanie
  • może być używany do przekierowań głębokiego linku jako params

Jak używać:

Jeśli migrujesz całą witrynę, to na starym serwerze zatrzymaj oryginalną witrynę i utwórz inną z tym plikiem jako domyślnym indeksem.plik html w folderze głównym. Edytuj ustawienia witryny, aby każdy błąd 404 został przekierowany do tego indeksu.strona html. To łapie każdego, kto uzyskuje dostęp do starej strony z linkiem do strony podrzędnej itp.

Teraz przejdź do znacznika otwierającego skrypt i edytuj adresy internetowe oldsite i newSite, a następnie zmień wartość sekund w razie potrzeby.

Zapisz i uruchom swoją stronę. Robota wykonana - czas na kawę.

<!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
Author: Vanquished Wombat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-19 12:58:42

Użyj tego kodu:

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

Proszę zwrócić uwagę: włóż to do metki.

 -1
Author: AngelHotxxx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-05 09:11:56