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

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

Ответ 1

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

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

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

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

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

Появится как

Перенаправление

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

Ответ 2

Я бы использовал как мета, так и код 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, если она установлена на вашем сервере.

Ответ 3

JavaScript

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

Метатег

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

Ответ 4

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

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

Ответ 5

Это сумма всех предыдущих ответов плюс дополнительное решение с использованием HTTP Refresh Header через .htaccess

1. HTTP Обновить заголовок

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

Header set Refresh "3"

Это "статический" эквивалент использования функции header() в 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. Мета Обновление

Вы можете использовать метаобновление, когда нежелательны зависимости от 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>

По выбору

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

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

Ресурсы

Ответ 6

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

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

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

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

window.location = "URL"

Ответ 7

Было бы лучше настроить перенаправление 301. См. Статью "Инструменты для веб-мастеров Google" 301 переадресации.

Ответ 8

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

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

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

Правильный код перенаправления 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 -->

Ответ 9

Вы можете использовать перенаправление META:

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

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

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

Но я бы предпочел использовать mod_rewrite, если у вас есть опция.

Ответ 10

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

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

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

Ответ 11

Поместите следующий код между тегами <HEAD> и </HEAD> вашего HTML-кода:

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

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

Ответ 12

Поместите следующий код в раздел <head>:

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

Ответ 13

Я обнаружил проблему при работе с приложением jQuery Mobile, где в некоторых случаях мой тег заголовка Meta не обеспечивал правильное перенаправление ( 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>

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

Ответ 14

Простым способом, который работает для всех типов страниц, является просто добавить тег 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 all.
        ...
    </body>
</html>

Ответ 15

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

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

Ответ 16

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

Для PHP:

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

Ответ 18

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

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

Ответ 19

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

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

Ответ 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>

Ответ 22

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

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

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

Ответ 23

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

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

Ответ 24

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

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

  • позволяет вам ловить и сохранять любые параметры строки запроса, которые есть у людей на их URL
  • делает ссылку необязательной, чтобы избежать нежелательного кэширования
  • позволяет информировать пользователей о старых и новых именах сайтов
  • показывает устанавливаемый обратный отсчет
  • может использоваться для переадресации с глубокими связями, так как сохраняет параметры

Как пользоваться:

Если вы перенесли весь сайт, то на старом сервере остановите исходный сайт и создайте другой с этим файлом в качестве файла index.html по умолчанию в корневой папке. Измените настройки сайта, чтобы любая ошибка 404 была перенаправлена на эту страницу index.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>

Ответ 25

Переадресация 301 - это постоянная переадресация с одного URL на другой. 301 перенаправляет посетителей сайта и поисковые системы на другой URL-адрес, чем тот, который они изначально ввели в свой браузер или выбрали на странице результатов поиска. Эти перенаправления также связывают различные URL-адреса под одним зонтиком, поэтому поисковые системы оценивают все адреса на основе полномочий домена из входящих ссылок. Подробнее о.... Перенаправить веб-страницу

Rj

Ответ 26

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

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

Пожалуйста, обратите внимание: поместите это в заголовок тега.

Ответ 27

Вы можете сделать это в JavaScript:

location = "url";

Ответ 28

Самый простой способ перенаправить на другой URL-адрес - использовать метатег HTML с параметром http-эквивалент, установленным на "обновить". Атрибут "content" устанавливает задержку перед тем, как браузер перенаправляет пользователя на новую веб-страницу. Чтобы редирект произошел, немедленно установите для этого параметра значение "0" секунд для атрибута содержимого.

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Refresh" content="0; url=https://www.w3docs.com" />
  </head>
</html>

Если вы хотите, чтобы ваше перенаправление происходило в точное время, просто укажите предпочитаемый параметр (в секундах) для "контента". content="10;

Узнайте больше по ссылке Как перенаправить страницу в HTML