Logo
Версия для печати

301 редирект - как сделать

  • Автор  SeRbGa

Всем привет!

Недавно потребовалось переименовать адрес страницы на сайте, что-бы она была доступна по другому адресу, но проблема в том, что она была проиндексирована. Как же сделать перемещение, чтобы не потерять трафик с поисковых систем ?

Итак нам поможет 301 редирект 

301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке.  При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL.

Приступим, я опишу несколько способов, которые накопал в интернете, плюс проверил их, у меня заработали все (повторю, что не все имеет право на жизнь в кодже. - пробуйте):

301 редирект в .htaccess

При использовании апача (apache) на сервере, переадресацию можно просто выполнить с помощью файла .htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

Redirect 301 /old-page.html http://new-domain.ru/new-page.html

или

Redirect permanent /old-page.html http://new-domain.ru/new-page.html

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

Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:

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

Редирект с помощью директивы RewriteRule модуля mod_rewrite

 

Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

Перенаправление домена с www на не-www

 

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

или

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

Редирект запросов с не-www на домен с www префиксом

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

или

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

 

Редирект с помощью скрипта (отправки заголовков)

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

HTTP/1.1 301 Moved Permanently
Location: http://www.newdomain.ru/newdir/newpage.htm

PHP редирект

<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
exit();
?>

ASP редирект

<%@ Language=VBScript %>
<% 
Response.Status=“301 Moved Permanently”
Response.AddHeader “Location”, “http://www.new-url.com”
response.end
%>

ASP.NET редирект

 

 

 

<script runat=“server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,“http://www.new-url.com”);
}
</script>

 

ColdFusion редирект

 

<.cfheader statuscode=“301” statustext=“Moved permanently”>
<.cfheader name=“Location” value=“http://www.new-url.com”>

 

JSP (Java) редирект

 

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>

 CGI PERL

 

$q = new CGI;
print $q->redirect(“http://www.new-url.com/”);

 Ruby on Rails

def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end

 Осуществление редиректа в nginx

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

 Редирект в Joomla 3.0

Допустим есть 2 страницы в Joomla - old.php  и  new.php

В old.php пишем:

 

<?php header( 'location: http://www.site.ru/new.php'); exit; ?>

Заключам этот код а теги плагина "{"source"}" - без кавычек и отключаем ее публикацию. (source - это плагин для вставки кода в материал)

 

проверяем Все работает :)

 

 Редирект в Bitrix.

я попробовал способ PHP - работает.

Последнее изменениеСреда, 13 Август 2014 23:46
  • Оцените материал
    (0 голосов)
  • Опубликовано в Web coding
  • Прочитано 5383 раз
SeRbGa

SeRbGa

мечтатель

Сайт: www.serbga.ru

Оставить комментарий

SeRbGa