Перенаправление страницы HTML

можно ли настроить базовую HTML-страницу для перенаправления на другую страницу при загрузке?

25 ответов


попробуйте использовать:

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

Примечание: поместите его в разделе head.

дополнительно для старых браузеров, если вы добавляете быструю ссылку, если она не обновляется правильно:

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

будет

редирект

Это все равно позволит вам добраться до места, куда вы идете с дополнительным щелчком мыши.


Я бы использовал оба мета и код JavaScript и будет иметь ссылку на всякий случай.

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

для полноты, я думаю, что лучший способ, если это возможно, использовать перенаправление сервера, поэтому отправьте 301 код состояния. Это легко сделать через .htaccess файлы с помощью Apache, или через многочисленные плагины с помощью WordPress. Я уверен, что есть также плагины для всех основных систем управления контентом. Кроме того, cPanel имеет очень простая конфигурация для 301 перенаправления, если у вас это установлено на вашем сервере.


JavaScript

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

мета-тег

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

Я бы и добавить каноническую ссылку, чтобы помочь вашему SEO человек:

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

это сумма всех предыдущих ответов плюс дополнительное решение с использованием заголовка HTTP Refresh via .реврайт

1. Заголовок обновления HTTP

прежде всего, вы можете использовать .htaccess для установки заголовка обновления, как это

Header set Refresh "3"

это "статический" эквивалент использования на PHP

header("refresh: 3;");

обратите внимание, что это решение поддерживается не все браузер.

2. В JavaScript

С другой URL-адресом:

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

без альтернативного URL:

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

через jQuery:

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

3. Meta Refresh

вы можете использовать meta refresh, когда зависимости от JavaScript и заголовков перенаправления нежелательны

с альтернативным URL:

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

без альтернативы URL-адрес:

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

используя <noscript>:

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

дополнительно

как рекомендовал Билли Мун, вы можете предоставить ссылку обновления в случае, если что-то пойдет не так:

если вы не перенаправлены автоматически:<a href='http://example.com/alternat_url.html'>Click here</a>

ресурсы


следующий мета-тег, помещенный между внутри головы, скажет браузеру перенаправить:

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

замените секунды на количество секунд ожидания перед перенаправлением и замените URL-адрес URL-адресом, на который вы хотите перенаправить.

кроме того, вы можете перенаправить с помощью JavaScript. Поместите это внутри тега скрипта в любом месте страницы:

window.location = "URL"

было бы лучше настроить 301 редирект. См. статью инструменты веб-мастера Google 301 редирект.


если вы с нетерпением ждете, чтобы следовать современным веб-стандартам, вы должны избегать простых перенаправлений HTML meta. Если вы не можете создать код на стороне сервера, вы должны выбрать JavaScript redirect вместо.

для поддержки браузеров с отключенным JavaScript добавьте строку перенаправления HTML meta в noscript элемент. The noscript вложенное перенаправление meta в сочетании с canonical тег поможет вашей поисковой системы рейтинга, а также.

если вы хотите избежать перенаправления петли, вы должны использовать location.replace() функции JavaScript.

надлежащая сторона клиента перенаправление URL код выглядит так (с Internet Explorer 8 и ниже исправить и без задержки):

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

можно использовать мета "redirect":

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

или JavaScript redirect (обратите внимание, что не у всех пользователей включен JavaScript, поэтому всегда готовьте для них решение для резервного копирования)

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

но я бы рекомендовал использовать и mod_rewrite, если у вас есть возможность.


Как только страница загружается,init функция запускается, и страница перенаправляется:

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

    <body onload="init()">
    </body>
</html>

поместите следующий код между тегами

и вашего HTML-кода:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">

выше HTML-код перенаправление перенаправлять ваших посетителей на другую веб-страницу мгновенно. The content="0; может быть изменено на количество секунд, которое браузер должен ждать перед перенаправлением.


поместите следующий код в тег :

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

Я нашел проблему при работе с jQuery Mobile приложение, где в некоторых случаях мой тег meta header не достигнет перенаправления должным образом (jQuery Mobile не читает заголовки автоматически для каждой страницы, поэтому размещение JavaScript также неэффективно, если не обернуть его в сложность). Я нашел самое простое решение в этом случае, чтобы поместить перенаправление JavaScript непосредственно в тело документа, следующим образом:

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

это, кажется, работает в каждое дело для меня.


самый простой способ, который работает для всех типов страниц-просто добавьте meta тег в голову:

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

вы должны использовать JavaScript. Поместите следующий код в теги вашей головы:

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

вы можете автоматически перенаправлять по коду состояния HTTP 301 или 302.

для PHP:

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

просто для хорошей мерой:

<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>

убедитесь, что над скриптом нет эха, иначе он будет проигнорирован. http://php.net/manual/en/function.header.php


бритва двигатель для 5-секундной задержки:

<meta http-equiv="Refresh"
         content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">

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

просто используйте событие onload тега body:

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

Я использую скрипт, который перенаправляет пользователя от индекса.html для входа на страницу

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

для этого Вам не нужен код JavaScript. Напишите это в <head> раздел HTML-страницы:

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

Как только страница загружается в 0 секунд, вы можете перейти на свою страницу.


насколько я их понимаю, все методы, которые я видел до сих пор для этого вопроса, похоже, добавляют старое местоположение в историю. Чтобы перенаправить страницу, но не иметь старого местоположения в истории, я использую replace способ:

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

это решение для перенаправления со всем, что я хотел, но не смог найти в хорошем чистом фрагменте, чтобы вырезать и вставить.

этот фрагмент имеет ряд преимуществ:

  • позволяет поймать и сохранить любые querystring params люди имеют на их url
  • делает ссылку unqiue, чтобы избежать нежелательного кэширования
  • позволяет информировать пользователей о старых и новых названий сайта
  • показывает настраиваемый обратный отсчет
  • смогите быть использовано для Deep-link перенаправляет как сохраняет params

как использовать:

если Вы перенесли весь сайт, то на старом сервере остановите исходный сайт и создайте другой с этим файлом в качестве индекса по умолчанию.HTML-файл в корневой папке. Измените настройки сайта так, чтобы любая ошибка 404 перенаправлялась на этот индекс.HTML-страница. Это ловит всех, кто обращается к старому сайту со ссылкой на страницу подуровня и т. д.

Теперь перейдите к тегу открытия скрипта и отредактируйте веб-адреса oldsite и newSite и измените значение секунд по мере необходимости.

сохранить и запустить ваш сайт. Работа сделана-время для кофе.

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

используйте этот код:

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

обратите внимание: положите его в теге head.