добавить
ссылку в
Email
Fb
подписка
RSS
Twitter
Email
Fb

Редирект 301

Что такое «Редирект 301»?

Тип ответа, возвращаемого сервером при обращении к конкретной странице, означающий, что эта страница была навсегда перемещена на новый адрес. Новый адрес указывается в HTTP-заголовке возвращаемого ответа. Область применения этого редиректа довольно широка — начиная от смены домена и переносе страницы сайта и заканчивая склейкой имени сайта с www и без него. 301-й редирект это наилучший метод сохранения позиций в поисковых системах, если вам нужно перенести страницу или сайт целиком.

При использовании 301-го редиректа, как посетители, так и поисковые роботы будут перенаправлены на указанный адрес. Также, новому адресу будут переданы все показатели и характеристики старого: тИЦ, PR, ссылочный вес и вес страницы. То есть произойдет полная склейка двух адресов.

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

301-й редирект с помощью .htaccess

Возможен только при использовании веб-сервера Apache. Для использования приведенных ниже методов редиректа, необходимо подключить к нему модули mod_alias и mod_rewrite. Первый — для использования директив Redirect, RedirectPermanent и RedirectMatch, второй — для RewriteRule.

Редирект с помощью Redirect и RedirectPermanent

Для редиректа единичных адресов вполне подойдут директивы Redirect и RedirectPermanent.

Redirect 301 /old.html http://new-domain.ru/new.html
или
Redirect permanent /old.html http://new-domain.ru/new.html
или
RedirectPermanent /old.html http://new-site.ru/new.html

Редирект с помощью RedirectMatch

В отличии от предыдущих директив, директива RedirectMatch подразумевает использование регулярных выражений для формирования правила переноса. Следующий код сделает возможным обращение к адресам с .php на конце, как к статичным HTML-страницам, оканчивающимся на .html.

RedirectMatch /(.*)\.html$ /$1.php

Редирект с помощью RewriteRule

Для работы этой директивы необходимо подключение модуля mod_rewrite. Следующий пример добавит ко всем адресам, не содержащим на конце слеш("/"), этот самый слеш.

RewriteCond %{HTTP_HOST} ^www\.domain\.ru
RewriteRule (.*) http://domain.ru/$1/ [R=301,L]

301-й редирект в nginx

if ($host = 'www.domain.com' ) {
rewrite ^(.*)$ http://domain.com$1 permanent;
}

301-й редирект с помощью скриптов

Принцип действия любого скрипта прост: он заключается в отправке серверу, следующего заголовка:

HTTP/1.1 301 Moved Permanently
Location: http://domain.ru/new.htm

В Location прописывается новый адрес расположения страницы, с которой происходит редирект.

Примеры редиректов на различных языках программирования:

ASP

<%@ Language=VBScript %>
<%
Response.Status=“301 Moved Permanently”
Response.AddHeader “Location”, “http://domain.ru/new.htm”
response.end
 %>

ASP.NET


ColdFusion

<.cfheader statuscode=“301” statustext=“Moved permanently”>
<.cfheader name=“Location” value=“http://domain.ru/new.htm”>

Javascript

<%
response.setStatus(301);
response.setHeader( “Location”, “http://domain.ru/new.htm” );
response.setHeader( “Connection”, “close” );
 %>

Perl

$q = new CGI;
print $q->redirect(“http://domain.ru/new.htm”);

PHP

header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://domain.ru/new.htm”);
exit();
 ?>

Python/Django

from django import http
def view(request):
return http.HttpResponseRedirect('http://domain.ru/new.htm')

Ruby on Rails

def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://domain.ru/new.htm”
end

Shell script

#!/bin/sh
echo "Content-type: text/html"
echo "Location: http://domain.ru/new.htm";
echo "";
exit 0;
Похожие статьи
mod_rewrite  apache  редирект 301  htaccess