Как сделать и зачем нужен 301 редирект

Как сделать и зачем нужен 301 редирект

redirectВ первую очередь, перед тем как переходить непосредственно к действиям, хочется описать в нескольких предложениях, что такое 301 редирект и для чего он используется.

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

При 301 редиректе получается склейка старого и нового адреса сайта. Параметры ТИЦ и ПР также будут переданы новому адресу URL.


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

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

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

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

Применяется когда нужно перенаправить с URL вида http://www.site.ru на http://site.ru.

Необходимо вносить изменения в файл .htaccess в корневой директории сайта.

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

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

Если вам больше не нужен определенный раздел сайта (например new1) и нужно перенаправить все запросы к папке (/new1) на один файл /new.php

Для этого в .htaccess добавляем следующий код

RewriteRule ^new1(.*)$ /new.php [L,R=301]

В случае если требуется перенаправить все файлы кроме одного, например:
все файлы из папки /new1 должны редиректится на файл /new.php, кроме файла /new1/photos.html, который должен перенаправляться на /new_photos.html, пишем следующий код:

RewriteRule ^new1/photos.html /new_photos.html [L,R=301]
RewriteRule ^new1(.*)$ /new.php [L,R=301]

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

Если есть необходимость сделать редирект динамического URL на новый статический файл

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

То есть теперь, запрос к файлу вида http://www.site.ru/article.jsp?id=3232 и/или http://www.site.ru/article.jsp?id=8745 будет отправлен на файл http://www.site.ru/news.htm

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

Для использования необходимо включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini

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

Однако, у этого способа есть недостаток — все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно.

[featured]Спонсор статьи: Чтобы ваши сайты всегда были доступны для пользователей и быстро загружались, нужно выбирать качественный хостинг, который отвечает всем этим требованиям.[/featured]

Comments (32)

  • Бездомный Бродяга

    Полезный материальчик ты накатал! Сам часто пользую различные редирексты, например при переезде с rav4click.ru на homelerss.ru

    22 мая 2009 at 4:43
  • Luckyboy

    Спасибо.
    Ага, я подписан на твой блог, видел, что ты переехал 🙂

    22 мая 2009 at 8:31
  • Сергей

    Недавно сделал 301 редирект. Спустя 2 недели все параметры гугл хорошо «принял» для нового домена со старого. Вернул pr4 и т.д. А вот яндекс…он просто не индексит новый домен. ВООБЩЕ. Мне что насильно надо удалять старый домен из индекса сначала? или просто дольше ждать, пока яндекс все поймет? Сейчас домена нового нет в выдаче яндекса))) Прям не знаю, что делать.

    1 июля 2009 at 21:08
  • Luckyboy

    Старый удалять не надо, просто надо ждать. Домен через add Url добавить в яндекс новый.

    3 июля 2009 at 19:29
  • Сергей

    Да, действительно. Вчера яндекс проиндексировал новый сайт и теперь он в топ-3 по нужным запросам. Спасибо за советы. Очень приятно понимать, что есть люди, которые бескорыстно могут помочь 😉

    4 июля 2009 at 11:58
  • Luckyboy

    🙂 Спасибо, приятно, что ценят.

    5 июля 2009 at 17:55
  • tushkan

    Помогите, не могу сделать 301 редирект с http://www.bioritm0.msk.ru/ware.php?wid=3333 (которой уже нет)
    на http://www.bioritm0.msk.ru/index.php?option=com_virtuemart&category_id=47&flypage=flypage.tpl&page=shop.product_details&product_id=31&Itemid=47

    это вообще не возможно?

    28 июля 2009 at 12:45
  • Светлана Бобровская

    Я хочу разделить свой нынешний блог, и перенести статьи с доимена ru на info с тем же именем. На прежнем пойдет акцент на блоговых проблемах (общение, конкурсы, эстафеты и т.п.), а статьи хочу перенести на новый, иначе огранизованный, уже не-блоговый сайт. Имя будет то же (vseuch), хочу и по оформлению сделать сходным. Это как будет оцениваться? Не делаю ли я грубейшую ошибку? Достаточно ли будет использовать 301 редирект для переносимых статей?

    29 июля 2009 at 17:05
    • Luckyboy

      Ну вообщем да, думаю что достаточно. По оформлению — это критично не повлияет.

      30 июля 2009 at 12:01
  • RunetPP

    А что если просто в robots.txt прописать адрес нового сайта тИЦ, PR и не склеются и роботы не перейдут на новый URL?

    4 февраля 2010 at 10:29
  • Morfiy

    Что то так и не понял как сделать редирект с одного домена на другой???

    9 февраля 2010 at 23:09
  • Luckyboy

    Попробуйте поискать информацию еще в других местах. Я сейчас немного отдалился от этих вопросов (технических) и точно уже не помню.

    11 февраля 2010 at 11:04
  • Сергей

    Спасибо! Нам очень помогла Ваша статья. С помощью нее у нас теперь все работает!

    25 февраля 2010 at 15:08
  • Илья

    По самым последним сведениям pr при редиректе передается не полностью: http://dezhik.ru/2010/03/301-redirekt-ne-polnostyu-peredaet-pr/

    22 марта 2010 at 20:01
  • закрути

    Решил на сайте разместить движок каталога статей. Ранее на сайте статьи размещать вручную в виде статичных HTML файлов. Пришло время автоматизировать данный процесс и естественно перенести на новый двиг старые статьи.

    Чтобы не упасть в выдаче выход редирект 301. Спасибо за информацию.

    14 апреля 2010 at 19:26
  • partnner

    За статью спасибо! вопрос такой: а mysite.ru (pr3) mysite.ru/index.htm (pr2) следует ли сливать через редирект 301?

    18 мая 2010 at 14:01
  • Luckyboy

    Да, такое дело следует слить. Так как от дублей типа — mysite.ru/index.htm следует избавляться.

    19 мая 2010 at 1:11
  • Nata

    Здравствуйте. Подскажите пожалуйста. А если у меня есть поддомен. Он не связан с тематикой домена и стал раскручиваться. Я хочу сделать из него самостоятельный сайт. Как это лучше и правильнее сделать?

    29 июня 2010 at 23:03
  • Luckyboy

    Если пока не очень раскрученный, просто залейте его на самостоятельный домен и все. Продвигайте.

    1 июля 2010 at 11:25
  • Яфа

    Спасиб за инфу, четко и ясно, на других форумах сопли жуют.

    Поставил-таки на свой блог, надеюсь заработает как надо.

    13 августа 2010 at 4:27
  • Борис

    Спасибо за подробный пост! Наконец-то разобрася с редиректом.

    2 сентября 2010 at 2:34
  • Сергей

    Добрый день. Подскажите пожалуйста как правильно сделать редирект 301 для 80 страниц. Страницы разные и в моем случае нужно каждую страницу прописать.

    по такому варианту:
    Redirect 301 /old-page.html http://new-domain.ru/new-page.html

    меня интересует следующее как продолжить этот список?

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

    Так правильно или по другому нужно делать?

    Заранее спасибо.

    12 апреля 2011 at 13:58
    • nikk

      ну как правильно оказалось ? так, как вы написали?

      6 сентября 2013 at 18:37
  • Luckyboy

    Приветствую. Да, получается, что так. Почему говорю так не уверенно — очень давно не имел дела с редиректами, однако исходя из поста — должно сработать.

    13 апреля 2011 at 9:05
  • casino agat

    Хочу добавить, для того чтобы редирект наверника увидел яндекс, нужно прописать в файле robots директиву Host, пример:
    User-agent: *
    Disallow: /cgi-bin/
    Disallow: /data/
    …………………….
    …………. и т.д если у вас есть эти строки после них нужно писать следующее
    User-agent — для яндекса:
    User-agent: Yandex
    Disallow:
    Host: online-casinowm.ru

    22 августа 2011 at 14:11
  • марат

    ХЗ зачем указал в файле sitemap адрес:

    http://мой_сайт/ndex.php

    а так как на мой сайт есть внешние ссылки с адресом http://мой_сайт
    то теперь гугл видит 2 абсолютно одинаковые страницы:

    http://мой_сайт
    и
    http://мой_сайт/ndex.php

    пока никто не ругает меня, но меня это нервирует…
    Да и PR будет делиться.
    Посоветуйте наилучшее решение…..

    18 марта 2012 at 11:49
  • Игорь

    Уже пол дня мучуюсь, не получается сделать редирект. Обновляю сайт, домен остается тотже. Делаю следующее:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^Мойки-Воздуха/Venta-LW24-Plus-белый\.html$ http://2.filter-tver.com/venta-2/venta-lw25-belyj [R=301]
    RewriteRule ^filtry-klassicheskie/rodnik/item/rodnik-3m\.html$ http://2.filter-tver.com/rodnik/rodnik-3m [R=301]
    404 ошибка, как бы не пробовал..

    29 марта 2013 at 11:19
  • Роман

    Сайт переехал на новый движок, на старом был УРЛ /index/page/ на новом УРЛ будет /page/ (старый не могу оставить, особенности движка…). Я запутался с 301 редиректом. Если сделаю 301 редирект то старница не просядет? Ведь старой ссылки уже нигде не будет ни на сайте, ни в карте сайта. Как поисковик поймет что это та же страница? Как я себе это понимаю, поисковик должен редиректится со старого адреса и тогда он поймет что страница переехала.

    14 октября 2013 at 14:00
  • Гарыныч

    1. У меня на сайте нужно поменять имена многих категорий. Старые имена заканчивались на .html. Они хорошо проиндексировались. Теперь будут без окончания. Мне нужно, что-бы все материалы и категории оканчивающиеся ранее на окончание .html, склеились и автоматически перенаправлялись на ссылки нового вида.
    2. Зачем склеивать страницы с www и без www? Это влияет как-то на сео-оптимизацию в поисковиках?

    17 января 2014 at 12:12
  • Евгений

    Здравствуйте,очень необходим ваш совет,так как даже не знаю в каком направлении искать,создаю свой сайт на CMS Prestashop 1.6 для службы доставки товара из Китая,задача отображать всё содержание сайта(вместе с работой поисковой формы на сайте) с домена мама на моём домене дочка в режиме онлайн на всю страницу сайта,а в самом верху страницы сайта разместить шапку для отображения контактных телефонов и две,три папки с информацией о доставке,оплате и пр.(шапка на странице сайта может быть создана с помощью дополнительного самописного модуля для данной версии commerce CMS Prestashop 1.6).Что для этого требуется и нужно ли при этом переводить свой домен дочку на хостинг домена мамы???Буду очень признателен за ваш ответ!!!Спасибо P.S.На какой CMS работает домен мама не известно,контент сайта превышает 10000 позиций товара.

    2 июня 2014 at 20:50
  • Евгений

    Уже разобрался сам,всем спасибо:)

    4 июня 2014 at 20:07

Comments are closed.