Logo

Мысли, мысли, мысли...

Способы переадресации в веб

Авг 142018

Способы переадресации в веб

Существует много способов переадресации в веб-приложениях, разберём наиболее популярные и удобные из них. Далее будут приводиться примеры с наглядными ссылками на различные способы переадресации.


PHP

Есть плюсы и минусы переадресации с помощью php, один из минусов заключается в повышении нагрузки на сервер, т. к. пыхыпы исполняется непосредственно сервером.

Все возможности переадрисации на php производятся через header();, она применяется для отправки заголовка http. Именно эта функция служит для перенаправления страниц и сайтов.

Существует два типа аргумента функции. Первый предназначен для отправки кода состояния соединения. Он начинается с "HTTP/". Другой тип вместе с заголовком передает клиентскому браузеру код состояния (REDIRECT 302). Этот аргумент начинается с "Location:

<?php
header('Location: /page/links/');
?>

Пример применения этого кода

Так же можно принудительно передать код состояния http 301, который будет передавать информацию серверу о том, что объект перемещён постоянно. В примере выше по умолчанию передаётся заголовок "перемещён временно", код состояния в том случае будет 302:

<?php
header('Location: /page/links/',true, 301);
?>

Пример применения http 301

Кроме того есть способ записать по другому передачу кода состояния и перенаправления по новому адресу:

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: /page/links/');
?>

Пример этого кода

Способ перенаправления через заданное время передаётся так же через header(), с атрибутом Refresh, задающим время переадресации в секундах:

<?php
header('Refresh: 7; url=/page/links/');
echo "Через 7 секунд вас переадресует на другую страничку";
?>

Пример переадресации через заданное время


JS

При использовании редиректов на js есть большой плюс того, что они исполняются именно клиентом, а не сервером, что значительно снижает нагрузку на машину. Скорость такой переадресации зависит лишь от мощности устройства, которое использует пользователь.

Есть несколько методов перенаправления на js. Самый простой - использование location, свойство которого отправляет страницу на новый адрес. location.replace же заменяет текущую страницу на новую. location.reload перезагружает ресурс из текущего URL на новый. Метод location.assign запускает загрузку и отображение нового документа по указанному URL.

<script>
location="/page/links/";
document.location.href="/page/links/";
location.replace("/page/links/");
window.location.reload("/page/links/");
document.location.replace("/page/links/");
window.location.assign('/page/links/') </script>

Пример методов на js

Можно так же использовать переадресацию через jQuery, подменив location.href, или поменяв некоторые атрибуты вашей странички. Но тогда вам потребуется предварительно подключить фреймворк jQuery к вашей страничке.

<script src="/themes/echo/js/jquery.js"></script> 
<script> $(location).attr('href','/page/links/')
$(window).attr('location','/page/links/')
$(location).prop('href', '/page/links/') </script>

Пример переадресации на jQuery

Есть ещё метод использования истории вашего браузера (переадресация на предыдущую страницу):

<script>
window.history.back()
window.history.go(-1)
</script>

Пример с использованием истории браузера

Редирект на js с задержкой времени выглядит следующим образом:

<script>
setTimeout ('window.location = "/page/links/"', 7000);
</script>
Через 7 секунд вас перебросит на заданную страничку links

Пример переадресации на js с задержкой


HTML

Самый простой способ переадресации на html - использование мета-тегов:

<head>
<meta http-equiv="refresh" content="7;URL=/page/links/" />
</head>
Через 7 секунд вас переадресует на страничку links

Пример с мета-тегами переадресации

И напоследок я приведу пример псевдо-переадресации через iframe. В данном способе происходит не редирект, а открытие другой странички внутри первой (окно в окне).

<frameset cols="100%">
<frame src="/page/links/">
<noframes>Этот браузер не поддерживает фреймы</noframes>
</frameset>

Пример с использованием фреймов


AtomHomeLinksopiums.eu

© Copyright by opiums. Адрес: Кемеровская обл, г. Междуреченск, Кузнецкая ул, 14. Телефон: +7(923)6281059
Наверх