Чтобы следовать современным веб-стандартам и обеспечить кросс-браузерную функциональность, я предпочитаю использовать этот продвинутый генератор перенаправления
Patartics Milán
1
Используйте .htaccess или IIS эквивалент для выполнения перенаправления на стороне сервера. Таким образом, даже если ваша физическая страница исчезнет, перенаправление все равно будет работать.
Этот инструмент insider.zone заставил меня перенаправить все строчные буквы, вызвав 404. Плюс нет способа связаться с тем, кто сделал страницу об этом.
Использование метаобновления не рекомендуется Консорциумом World Wide Web (W3C). Ссылка: en.wikipedia.org/wiki/Meta_refresh . Поэтому рекомендуется использовать перенаправление сервера. Перенаправления JavaScript могут работать не на всех мобильных телефонах, поскольку JavaScript может быть отключен.
NinethSense
61
К вашему сведению, 0средство для обновления через 0 секунд. Вы можете дать пользователю больше времени, чтобы узнать, что происходит.
Деннис
5
@Paul Draper, это зависит от сервера, на котором вы работаете
Gal Margalit
9
Я добавил закрытие тега для соблюдения спецификаций XHTML5.
ZenLulz
98
Комментарий @ NinethSense делает метаобновление похожим на перенаправление JavaScript. Мета-обновление не JS и будет работать, когда JS отключен.
Друска
1104
Я бы использовал как мета , так и код JavaScript и имел бы ссылку на всякий случай.
<!DOCTYPE HTML><htmllang="en-US"><head><metacharset="UTF-8"><metahttp-equiv="refresh"content="0; url=http://example.com"><scripttype="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 <ahref='http://example.com'>link to example</a>.
</body></html>
Для полноты, я думаю, что лучший способ, если это возможно, это использовать перенаправления сервера, поэтому отправьте код состояния 301 . Это легко сделать с помощью .htaccessфайлов Apache или с помощью многочисленных плагинов, использующих WordPress . Я уверен, что есть также плагины для всех основных систем управления контентом. Кроме того, cPanel имеет очень простую конфигурацию для переадресации 301, если она установлена на вашем сервере.
Эта страница перенаправления может быть намного более краткой с HTML5: pastebin.com/2qmfUZMk (которая работает во всех браузерах и проходит проверку w3c)
enyo
9
@enyo Я не большой поклонник отбрасывания bodyтегов и тому подобного. Возможно, это подтверждает, и, возможно, работает в обычных браузерах. Я уверен, что есть некоторые дополнительные случаи, это вызывает проблемы, и выгода кажется небольшой.
Билли Мун
9
@ Фрикер, потому что они могут не щелкать. Они могут управлять с помощью голоса, прослушивания или навигации каким-то неизвестным способом. Это руководство по доступности, чтобы следовать стандартам для элементов управления, таким как использование стандартного атрибута HTML A для ссылки, и думать об этом, и передавать его как ссылку, а не предписывать, как кто-то должен взаимодействовать с ним. Кроме того, click hereуказывать ссылку не рекомендуется, так как на экране будет сложнее ориентироваться. Ссылки должны быть на тексте, описывающем пункт назначения, чтобы пользователь знал, куда он прибудет, прежде чем следовать за ним, и тем не менее он взаимодействует с ним.
Билли Мун
2
@BillyMoon, на самом деле значение «щелчка» уже было перегружено, чтобы включить все эти значения. «клик» подойдет.
Pacerier
2
@BillyMoon, при каких обстоятельствах браузер игнорирует мета-обновление 0 значений? Спасибо!
Вы бы использовали каноническую ссылку в дополнение к перенаправлению? en.wikipedia.org/wiki/Canonical_link_element говорит, что Google предпочитает использовать перенаправление вместо канонической ссылки.
LarsH
1
@larsH Итак, что самое важное для SEO, это ссылка для перенаправления или конечная страница назначения?
Замените секунды на количество секунд ожидания, прежде чем оно будет перенаправлено, и замените URL-адрес URL-адресом, на который вы хотите перенаправить его.
Кроме того, вы можете перенаправить с помощью JavaScript. Поместите это внутри тега script в любом месте страницы:
Вопрос специально просит основную .html страницу. Я предполагаю, что asker не может изменить .htaccess или подобное (например, используя Github Pages или аналогично ограниченный хостинг). 301 не выполнимо в таких случаях
Николас Рауль
26
Если вы хотите следовать современным веб-стандартам, вам следует избегать простого перенаправления мета-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 --><linkrel="canonical"href="https://stackoverflow.com/"/><noscript><metahttp-equiv="refresh"content="0; URL=https://stackoverflow.com/"></noscript><!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]--><scripttype="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 -->
Аргументы, которые w3c предоставляет против перенаправлений HTML, также применяются к перенаправлениям Javascript. Кроме того, Javascript перенаправления требуют включения JavaScript, в отличие от перенаправлений HTML. Поэтому перенаправления HTML строго лучше, чем перенаправления Javascript в тех случаях, когда можно использовать оба.
или перенаправление JavaScript (обратите внимание, что не у всех пользователей включен JavaScript, поэтому всегда готовьте для них решение для резервного копирования)
Приведенный выше HTML-код перенаправления мгновенно перенаправит ваших посетителей на другую веб-страницу. Значение content="0;может быть изменено на количество секунд, которое вы хотите, чтобы браузер ждал перед перенаправлением.
Я обнаружил проблему при работе с приложением jQuery Mobile , когда в некоторых случаях мой мета-тег заголовка не достигал перенаправления должным образом (jQuery Mobile не считывает заголовки автоматически для каждой страницы, поэтому размещение JavaScript также неэффективно, если его не заключить в оболочку). сложности). Я обнаружил, что самое простое решение в этом случае заключалось в том, чтобы перенаправить JavaScript непосредственно в тело документа следующим образом:
<html><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><metahttp-equiv="refresh"content="0;url=myURL"/></head><body><p>You are not logged in!</p><scriptlanguage="javascript">
window.location ="myURL";</script></body></html>
Простой способ, который работает для всех типов страниц, это просто добавить metaтег в заголовок:
<html><head>
...
<metaHTTP-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>
Я использую скрипт, который перенаправляет пользователя с index.html на относительный URL страницы входа
<html><head><title>index.html</title></head><bodyonload="document.getElementById('lnkhome').click();"><ahref="/Pages/Login.aspx"id="lnkhome">Go to Login Page<a></body></html>
URL перенаправления в вышеуказанном методе может быть относительным. Например: вы хотите перенаправить на страницу входа или любую относительную страницу с помощью index.html в корне сайта. не нужно знать ваше доменное имя. но когда вы устанавливаете window.location.href = "xxx"; Вы должны знать доменное имя.
Вопрос специально просит основную .html страницу. Я предполагаю, что asker не может изменить .htaccess или подобное (например, используя Github Pages или аналогично ограниченный хостинг). PHP не доступен в таких случаях.
Николас Рауль
Я бы посчитал что-то, сгенерированное PHP (Pre-Hypertext Processor) «базовой HTML-страницей». Нигде в вопросе не упоминается тип файла.
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>Redirect to a page</title></head><bodyonload="window.location.assign('http://example.com')"></body></html>
это уже отражено в принятом ответе и главных комментариях - рассмотрите возможность редактирования ответа, чем публиковать повторяющийся ответ
RozzA
3
Насколько я понимаю, все методы, которые я видел до сих пор в этом вопросе, похоже, добавляют старое место в историю. Чтобы перенаправить страницу, но у меня нет старого местоположения в истории, я использую replaceметод:
Это решение для перенаправления со всем, что я хотел, но не смог найти в хорошем чистом фрагменте для вырезания и вставки.
Этот фрагмент имеет ряд преимуществ:
позволяет вам ловить и сохранять любые параметры строки запроса, которые есть у людей на их URL
делает ссылку необязательной, чтобы избежать нежелательного кэширования
позволяет информировать пользователей о старых и новых именах сайтов
показывает устанавливаемый обратный отсчет
может использоваться для переадресации с глубокими связями, так как сохраняет параметры
Как пользоваться:
Если вы перенесли весь сайт, то на старом сервере остановите исходный сайт и создайте другой с этим файлом в качестве файла index.html по умолчанию в корневой папке. Измените настройки сайта, чтобы любая ошибка 404 была перенаправлена на эту страницу index.html. Это ловит любого, кто получает доступ к старому сайту со ссылкой на страницу подуровня и т. Д.
Теперь перейдите к открывающему тегу сценария и отредактируйте веб-адреса oldsite и newSite и измените значение секунд по мере необходимости.
Сохраните и запустите ваш сайт. Работа сделана - время для кофе.
<!DOCTYPE html><html><head><METAHTTP-EQUIV="CACHE-CONTROL"CONTENT="NO-CACHE"><METAHTTP-EQUIV="PRAGMA"CONTENT="NO-CACHE"><METAHTTP-EQUIV="EXPIRES"CONTENT="Mon, 22 Jul 2002 11:12:01 GMT"><style>
body {margin:200px;font:12pt helvetica;}</style></head><body></body><scripttype="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>');functionDelayRedirect(){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><ahref="https://google.com">Click here if you are not redirected automatically.</a></noscript>
Ответы:
Попробуйте использовать:
Примечание: поместите его в головной части.
Кроме того, для старых браузеров, если вы добавите быструю ссылку, если она не обновляется правильно:
<p><a href="http://example.com/">Redirect</a></p>
Появится как
Перенаправление
Это все еще позволит вам попасть туда, куда вы собираетесь, с помощью дополнительного клика.
источник
0
средство для обновления через 0 секунд. Вы можете дать пользователю больше времени, чтобы узнать, что происходит.Я бы использовал как мета , так и код JavaScript и имел бы ссылку на всякий случай.
Для полноты, я думаю, что лучший способ, если это возможно, это использовать перенаправления сервера, поэтому отправьте код состояния 301 . Это легко сделать с помощью
.htaccess
файлов Apache или с помощью многочисленных плагинов, использующих WordPress . Я уверен, что есть также плагины для всех основных систем управления контентом. Кроме того, cPanel имеет очень простую конфигурацию для переадресации 301, если она установлена на вашем сервере.источник
body
тегов и тому подобного. Возможно, это подтверждает, и, возможно, работает в обычных браузерах. Я уверен, что есть некоторые дополнительные случаи, это вызывает проблемы, и выгода кажется небольшой.click here
указывать ссылку не рекомендуется, так как на экране будет сложнее ориентироваться. Ссылки должны быть на тексте, описывающем пункт назначения, чтобы пользователь знал, куда он прибудет, прежде чем следовать за ним, и тем не менее он взаимодействует с ним.JavaScript
Метатег
источник
Я также добавил бы каноническую ссылку, чтобы помочь вашим SEO-специалистам :
источник
Следующий метатег, помещенный между внутри головы, скажет браузеру перенаправить:
Замените секунды на количество секунд ожидания, прежде чем оно будет перенаправлено, и замените URL-адрес URL-адресом, на который вы хотите перенаправить его.
Кроме того, вы можете перенаправить с помощью JavaScript. Поместите это внутри тега script в любом месте страницы:
источник
Это сумма всех предыдущих ответов плюс дополнительное решение с использованием HTTP Refresh Header через .htaccess
1. HTTP Обновить заголовок
Прежде всего, вы можете использовать .htaccess, чтобы установить заголовок обновления, подобный этому
Это «статический» эквивалент использования
header()
функции в PHPОбратите внимание, что это решение поддерживается не всеми браузерами.
2. JavaScript
С альтернативным URL :
Без альтернативного URL:
Через JQuery:
3. Мета Обновление
Вы можете использовать метаобновление, когда нежелательны зависимости от JavaScript и заголовки перенаправления.
С альтернативным URL:
Без альтернативного URL:
Использование
<noscript>
:По выбору
В соответствии с рекомендациями Billy Moon вы можете предоставить ссылку для обновления на случай, если что-то пойдет не так:
Если вы не перенаправлены автоматически:
<a href='http://example.com/alternat_url.html'>Click here</a>
Ресурсы
Википедия Meta refresh
Влияние на производительность META REFRESH
Обновить (перезагрузить) страницу один раз, используя jQuery?
источник
setTimeout
со строкой. Передайте функцию вместо.Было бы лучше настроить редирект 301 . См. Перенаправления статьи 301 Google Инструменты для веб-мастеров .
источник
Если вы хотите следовать современным веб-стандартам, вам следует избегать простого перенаправления мета-HTML. Если вы не можете создать код на стороне сервера, вам следует вместо этого выбрать перенаправление JavaScript .
Для поддержки браузеров с отключенным JavaScript добавьте строку HTML-перенаправления мета в
noscript
элемент.noscript
Вложенная мета редирект в сочетании сcanonical
тегом поможет ваш рейтинг в поисковых системах , а также.Если вы хотите избежать циклов перенаправления, вы должны использовать
location.replace()
функцию JavaScript.Правильный код перенаправления URL - адреса на стороне клиента выглядит следующим образом (с Internet Explorer 8 и более поздними исправлениями и без задержки):
источник
<meta http-equiv="refresh"
W3C устарела.Вы можете использовать META "redirect":
или перенаправление JavaScript (обратите внимание, что не у всех пользователей включен JavaScript, поэтому всегда готовьте для них решение для резервного копирования)
Но я бы предпочел использовать mod_rewrite , если у вас есть возможность.
источник
Как только страница загружается,
init
функция запускается и страница перенаправляется:источник
Поместите следующий код между тегами <HEAD> и </ HEAD> вашего HTML-кода:
Приведенный выше HTML-код перенаправления мгновенно перенаправит ваших посетителей на другую веб-страницу. Значение
content="0;
может быть изменено на количество секунд, которое вы хотите, чтобы браузер ждал перед перенаправлением.источник
Поместите следующий код в
<head>
раздел:источник
Я обнаружил проблему при работе с приложением jQuery Mobile , когда в некоторых случаях мой мета-тег заголовка не достигал перенаправления должным образом (jQuery Mobile не считывает заголовки автоматически для каждой страницы, поэтому размещение JavaScript также неэффективно, если его не заключить в оболочку). сложности). Я обнаружил, что самое простое решение в этом случае заключалось в том, чтобы перенаправить JavaScript непосредственно в тело документа следующим образом:
Это, кажется, работает в каждом случае для меня.
источник
Простой способ, который работает для всех типов страниц, это просто добавить
meta
тег в заголовок:источник
Вы должны использовать JavaScript. Поместите следующий код в теги головы:
источник
Вы можете автоматически перенаправить по HTTP-коду 301 или 302.
Для PHP:
источник
Я использую скрипт, который перенаправляет пользователя с index.html на относительный URL страницы входа
источник
Просто для хорошей меры:
Убедитесь, что над сценарием нет эхо, иначе оно будет проигнорировано. http://php.net/manual/en/function.header.php
источник
Просто используйте событие onload тега body:
источник
Двигатель бритвы на 5 секунд задержки:
источник
источник
Вам не нужен код JavaScript для этого. Напишите это в
<head>
разделе HTML-страницы:Как только страница загрузится в 0 секунд, вы можете перейти на свою страницу.
источник
Насколько я понимаю, все методы, которые я видел до сих пор в этом вопросе, похоже, добавляют старое место в историю. Чтобы перенаправить страницу, но у меня нет старого местоположения в истории, я использую
replace
метод:источник
Это решение для перенаправления со всем, что я хотел, но не смог найти в хорошем чистом фрагменте для вырезания и вставки.
Этот фрагмент имеет ряд преимуществ:
Как пользоваться:
Если вы перенесли весь сайт, то на старом сервере остановите исходный сайт и создайте другой с этим файлом в качестве файла index.html по умолчанию в корневой папке. Измените настройки сайта, чтобы любая ошибка 404 была перенаправлена на эту страницу index.html. Это ловит любого, кто получает доступ к старому сайту со ссылкой на страницу подуровня и т. Д.
Теперь перейдите к открывающему тегу сценария и отредактируйте веб-адреса oldsite и newSite и измените значение секунд по мере необходимости.
Сохраните и запустите ваш сайт. Работа сделана - время для кофе.
источник
Перенаправить с помощью JavaScript,
<noscript>
если JS отключен.источник
Используйте этот код:
Пожалуйста, обратите внимание: поместите это в заголовок тега.
источник
Вы можете сделать это в JavaScript:
источник
Вы можете использовать это
источник