Навигация:   Главная  –  Интернет  –  Перенаправление URL, Redirect




Перенапрвление URL. Redirect

Redirect - техника, применяемая во Всемирной паутине для того, чтобы Веб-страница была доступна под несколькими URL.

Редирект используют для перенаправления посетителей сайта с одной страницы на другую.

Причины использования редиректа:

– смена доменного имени

– добавление слэш ( ⁄ ) в конце адреса (ссылки)

– смена движка (CMS) сайта

– нежелание показывать ссылку до перехода по ней ("реферальная ссылка")

Статус-коды редиректов:

"300" Multiple Choices (несколько вариантов на выбор)

"301" Moved Permanently (перемещено навсегда)

"302" Temporary Redirect (временный редирект)

"303" See Other (затребованный ресурс можно найти по др. адресу)

"304" Not Modified (содержимое не изменялось - это могут быть рисунки, таблицы стилей и т.п.)

"305" Use Proxy (доступ должен осуществляться через прокси)

"306" (Unused) (не используется)

Примеры организации редиректа:

html редирект:

* вставлять в раздел HEAD документа HTML

<meta http-equiv="refresh" content="seconds;URL-to-redirect">
Наглядно это будет выглядеть так (перенаправит запрашиваемую страницу на страницу http://example.com через 3 секунды):

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

.htaccess редирект:

Redirect <status *необязательный параметр> /page.php /page1.php
Пример:

Перенаправит со страницы page.php на страницу page1.php

Redirect 301 /page.php /page1.php
Перенаправление всех запросов на http://example.com:

Redirect / http://example.com

Перенаправит с URL http://www.example.com на http://example.com:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

php редирект:

Перенаправит на другой домен:

<?php
 header("HTTP/1.1 301 Moved Permanently");
 header("Location: http://exemple.com");
 exit();
?>

Перенаправит запрашиваемую страницу на news.php

<?php
 header("HTTP/1.1 302 Temporary Redirect" );
 header("Location: news.php" );
 exit();
?>

javascript редирект

* вставлять в раздел HEAD документа HTML

<script type="text/javascript">
location.replace("http://example.com");
</script>
<noscript>
<meta http-equiv="refresh" content="0; url=http://exemple.com">
</noscript>

С задержкой в миллисекундах:

<script type="text/javascript">
setTimeout('location.replace("http://example.com")', 3000);
/*Изменить текущий адрес страницы через 3 секунды*/
</script>
<noscript>
<meta http-equiv="refresh" content="3; url=http://exemple.com">
</noscript>

nginx редирект

Пернаправит с http://example.com на http://site.com:

location http://example.com {
	rewrite ^(.*)$ http://site.com redirect;
}

Будет перенаправлять все запросы с директории folder1 на директорию folder2:

location ^~ /folder1 {
	rewrite ^(.*)$ /folder2 redirect;
}