301 Redirect: Руководство по правильной SEO эксплуатации
September 13th 2007 @ 5:17 am Статьи

Темы с обсуждением различных типов редиректов постоянно всплывают на многих SEO-шных форумах. Информации на эту тему много, но в основном разрозненной. В этой статье я рассмотрю 301 redirect, а в следующей порой незаслуженно игнорируемый 302 redirect.

phentermine online pharmacy

Редирект 301 (301 Permanent Redirect или Moved Permanently) используется в нескольких случаях:

buy provigil online no prescription

- при смене домена, когда по каким то причинам старый домен вас не устраивает и вы переносите контент на новый домен.
- при переносе страницы сайта, например при смене CMS сайта
- для склейки имени сайта с www и без него. Данный пункт уже не столь актуален для Google.

buy xanax online

Использование 301 редиректа – это отличный метод сохранения ваших позиций в поисковых системах, при перемещении сайта или отдельных его страниц. Ниже рассмотрены примеры реализации данного типа редиректа в примерах.

buy diazepam without prescription

301 редирект www на без-www

buy soma no prescription

Используется для указания одной версии сайта с www как основной ( то есть http://www.kass.ws и http://kass.ws ), для этого создаем файл с названием .htaccess в корневой директории сайта.

valium online no prescription

RewriteEngine On

tramadol online pharmacy

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

tramadol online pharmacy

Часть кода ’(*.)$’ показывает, что бы берем все содержимое которое идет после http://kass.ws и присваиваем к ’http://www.kass.ws’ и редиректим данный URL. Если ваш .htaccess файл уже содержить строчку RewriteEngine On, то второй раз ее использовать не надо.

301 редирект www на без-www

buy ambien online

Код для обратной замены выглядит так

buy klonopin online without prescription

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

Редирект всех файлов в папке на один файл.

buy valium online no prescription

Например вы больше не нуждаетесь в разделе сайта Super discount и хотите перенаправить все запросы к папке /superdiscount на один файл /hot-offers.php. Для этого добавляем в .htaccess следующий код.

xanax online pharmacy

RewriteRule ^superdiscount(.*)$ /hot-offers.php [L,R=301]

buy ambien no prescription

Но если вы хотите сделать редирект всей папки кроме одного файла? В следующем примере все файлы из папки /superdiscount будут редиректится на на файл /hot-offers.php, КРОМЕ файла /superdiscount/my-ebook.html котоый должен редиректится на /hot-to-make-million.html

valium online without prescription

RewriteRule ^superdiscount/my-ebook.html /hot-to-make-million.html [L,R=301]
RewriteRule ^superdiscount(.*)$ /hot-offers.php [L,R=301]

Редирект динамического URL на новый файл.

buy ambien without prescription

Данный вариант пригодится если вы хотите редиректить динамический URL с параметрами на новый статический файл.

ambien online pharmacy

RewriteRule ^article.jsp?id=(.*)$ /latestnews.htm [L,R=301]

buy phentermine no prescription

То есть теперь, запрос к файлу вида http://www.kass.ws/article.jsp?id=8632 и/или http://www.kass.ws/article.jsp?id=1245 будет отправлен на файл http://www.kass.ws/latestnews.htm.

Массовый редирект новых файлов.

Тепепь перейдем к самому сложному моменту, когда вам надо редиректить массу URL-ов, например после смены вашей CMS. Тут сразу возникает ряд проблем. Во-первых, внесение всех изменившихся адресов в .htaccess файл займет очень много времени, да и само по себе занятие малоприятное. Во-вторых, слишком много записей в .htaccess файле будут тормозить Apache сервера. И в третьих, при внесении такого количества информации высока вероятность, что вы где то ошибетесь. По этому, самый лучший выход, это нанять програмиста который вам напишет динамический редирект.

Нижеприведенный пример написан на PHP, но так же может быть выполнен на любом языке. Предположим вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа.

old_id INT
new_url VARCHAR (255)

Далее пишем код который свяжет ваши старые id с новыми URL-ами

После этого, добавляем следующую строчку в .htaccess:

RewriteRule ^/product-(.*)_([0-9]+).php /redirectold.php?productid=$2

затем создаем PHP файл redirectold.php, который будет поддерживать 301 редирект:

<?php
function getRedirectUrl($productid) {
// Connect to the database
$dServer = “localhost”;
$dDb = “mydbname”;
$dUser = “mydb_user”;
$dPass = “password”;

$s = @mysql_connect($dServer, $dUser, $dPass)
or die(“Couldn’t connect to database server”);

@mysql_select_db($dDb, $s)
or die(“Couldn’t connect to database”);

$query = “SELECT new_url FROM redirects WHERE old_id = “. $productid;
mysql_query($query);
$result = mysql_query($query);
$hasRecords = mysql_num_rows($result) == 0 ? false : true;
if (!$hasRecords) {
$ret = ’http://www.yoursite.com/’;
} else {
while($row = mysql_fetch_array($result))
{
$ret = ’http://www.yoursite.com/’. $row["new_url"];
}
}
mysql_close($s);
return $ret;
}

$productid = $_GET["productid"];
$url = getRedirectUrl($productid);

header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: $url”);
exit();
?>

Теперь все запросы к вашим старым URL-ам будут вызывать redirectold.php, который найдет новый URL и вернет 301 ответ с вашей новой ссылкой.

-kass
Добавь в закладки: del.icio.us reddit.com technorati.com news2.ru moemesto.ru bobrdobr.ru memori.ru

Похожие посты:

comments are closed
  1. pingback

    [...] :Оптимизация черная и белая Поисковая оптимизация как путь к светлому капиталистическому будущему « 301 Redirect: Руководство по правильной SEO эксплуатации 302 Redirect: Руководство по правильной SEO эксплуатации September 13th 2007 @ 8:00 am Статьи [...]

  2. pingback

    [...] Статейку о 301 редиректе написал колега блогер Kass. Так же очень нужно навел примеры в кодах, что и является самым ценным. Что говорит о практичности статтьи. [...]

  3. pingback

    [...] Как я говорил ранее, все приведенные примеры могут быть решены програмными средствами, но в зависимости от ситуации 302 редирект может быть наиболее простым решением. Синтаксис прописывания 302 редиректа можно найти в моей статье 301 Redirect: Руководство по правильной SEO эксплуатации, просто заменив 301 на 302. [...]

  4. pingback
  5. odp
    September 24th, 2007 | 11:21 | #5

    На форумах или магазинах нормально. На небольшом сайте наверное лучше .htaccess пользовать – сотня-другая редиректов на производительности сервера вообще никак отразиться не должна.

  6. pingback

    [...] 301 Redirect: Руководство по правильной SEO эксплуатации Использование 301 редиректа — это отличный метод сохранения ваших позиций в поисковых системах, при перемещении сайта или отдельных его страниц, например, при изменении шаблона ссылок. [...]

  7. October 18th, 2007 | 11:27 | #7

    Автору спасибо за статью. По-моему, самое понятное описание решений по 301-му редиректу.

  8. November 25th, 2007 | 07:12 | #8

    Самое понятное, и самое подробное! Поклон и уважуха kass’у!

  9. November 28th, 2007 | 07:51 | #9

    301-ый нa Perl
    $q = new CGI;
    print $q->redirect(“http://www.somesite.com/”);

  10. January 18th, 2008 | 06:58 | #10

    Было бы неплохо упомянуть как использовать редирект для склейки PR, что бы бот шел на другой сайт а посетитель на Ваш

  11. pingback

    [...] 301 Redirect: Руководство по правильной SEO эксплуатации [...]

  12. May 6th, 2008 | 04:47 | #12

    Спасибо,
    часто в поиске натыкаюсь на эту статью, всегда выручала.

  13. May 31st, 2008 | 13:51 | #13

    >RewriteRule ^article.jsp?id=(.*)$ /latestnews.htm [L,R=301]
    Только это какбе не редирект =)