Можно ли настроить базовую страницу HTML для перенаправления на другую страницу при загрузке?
Можно ли настроить базовую страницу HTML для перенаправления на другую страницу при загрузке?
Ответы:
Попробуйте использовать:
<meta http-equiv="refresh" content="0; url=http://example.com/" />
Примечание: поместите его в головной части.
Кроме того, для старых браузеров, если вы добавите быструю ссылку, если она не обновляется правильно:
<p><a href="http://example.com/">Redirect</a></p>
Появится как
Это все еще позволит вам попасть туда, куда вы собираетесь, с помощью дополнительного клика.
0
средство для обновления через 0 секунд. Вы можете дать пользователю больше времени, чтобы узнать, что происходит.
Я бы использовал как мета , так и код 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, если она установлена на вашем сервере.
body
тегов и тому подобного. Возможно, это подтверждает, и, возможно, работает в обычных браузерах. Я уверен, что есть некоторые дополнительные случаи, это вызывает проблемы, и выгода кажется небольшой.
click here
указывать ссылку не рекомендуется, так как на экране будет сложнее ориентироваться. Ссылки должны быть на тексте, описывающем пункт назначения, чтобы пользователь знал, куда он прибудет, прежде чем следовать за ним, и тем не менее он взаимодействует с ним.
Я также добавил бы каноническую ссылку, чтобы помочь вашим SEO-специалистам :
<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
Следующий метатег, помещенный между внутри головы, скажет браузеру перенаправить:
<meta http-equiv="Refresh" content="seconds; url=URL">
Замените секунды на количество секунд ожидания, прежде чем оно будет перенаправлено, и замените URL-адрес URL-адресом, на который вы хотите перенаправить его.
Кроме того, вы можете перенаправить с помощью JavaScript. Поместите это внутри тега script в любом месте страницы:
window.location = "URL"
Это сумма всех предыдущих ответов плюс дополнительное решение с использованием 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>
Ресурсы
setTimeout
со строкой. Передайте функцию вместо.
Было бы лучше настроить редирект 301 . См. Перенаправления статьи 301 Google Инструменты для веб-мастеров .
Если вы хотите следовать современным веб-стандартам, вам следует избегать простого перенаправления мета-HTML. Если вы не можете создать код на стороне сервера, вам следует вместо этого выбрать перенаправление JavaScript .
Для поддержки браузеров с отключенным JavaScript добавьте строку HTML-перенаправления мета в noscript
элемент. noscript
Вложенная мета редирект в сочетании с 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 -->
<meta http-equiv="refresh"
W3C устарела.
Вы можете использовать META "redirect":
<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 , если у вас есть возможность.
Поместите следующий код между тегами <HEAD> и </ HEAD> вашего HTML-кода:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">
Приведенный выше HTML-код перенаправления мгновенно перенаправит ваших посетителей на другую веб-страницу. Значение content="0;
может быть изменено на количество секунд, которое вы хотите, чтобы браузер ждал перед перенаправлением.
Я обнаружил проблему при работе с приложением jQuery Mobile , когда в некоторых случаях мой мета-тег заголовка не достигал перенаправления должным образом (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");
?>
Я использую скрипт, который перенаправляет пользователя с 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>
Просто для хорошей меры:
<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>
Убедитесь, что над сценарием нет эхо, иначе оно будет проигнорировано. http://php.net/manual/en/function.header.php
Просто используйте событие onload тега body:
<body onload="window.location = 'http://example.com/'">
Двигатель бритвы на 5 секунд задержки:
<meta http-equiv="Refresh"
content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
Вам не нужен код JavaScript для этого. Напишите это в <head>
разделе HTML-страницы:
<meta http-equiv="refresh" content="0; url=example.com" />
Как только страница загрузится в 0 секунд, вы можете перейти на свою страницу.
Насколько я понимаю, все методы, которые я видел до сих пор в этом вопросе, похоже, добавляют старое место в историю. Чтобы перенаправить страницу, но у меня нет старого местоположения в истории, я использую replace
метод:
<script>
window.location.replace("http://example.com");
</script>
Это решение для перенаправления со всем, что я хотел, но не смог найти в хорошем чистом фрагменте для вырезания и вставки.
Этот фрагмент имеет ряд преимуществ:
Как пользоваться:
Если вы перенесли весь сайт, то на старом сервере остановите исходный сайт и создайте другой с этим файлом в качестве файла 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> 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>
Перенаправить с помощью JavaScript, <noscript>
если JS отключен.
<script>
window.location.replace("https://google.com");
</script>
<noscript>
<a href="https://google.com">Click here if you are not redirected automatically.</a>
</noscript>
Используйте этот код:
<meta http-equiv="refresh" content="0; url=https://google.com/" />
Пожалуйста, обратите внимание: поместите это в заголовок тега.
Вы можете сделать это в JavaScript:
location = "url";
Вы можете использовать это
<meta http-equiv="refresh" content="0; url=http://newpage.com/" />