Лучшая система размещения статей. Будущее SEO - за статьями!

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

26 комментариевКол-во просмотров: 11,126

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

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

Об авторе:

Приветствую! Меня зовут Игорь (aka Luckyboy) и я рад вас видеть на своем блоге! Я автор и создатель этого блога. Очень рад, что вы читаете мои статьи - надеюсь вы нашли, что искали! Буду рад, если вы поделитесь ссылкой на статью с друзьями в социальных сетях.

Все статьи автора

Оно работает ;-)



2leep.com


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

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

  2. Luckyboy пишет:

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

  3. Сергей пишет:

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

  4. Luckyboy пишет:

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

  5. Сергей пишет:

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

  6. Luckyboy пишет:

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

  7. 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

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

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

  9. RunetPP пишет:

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

  10. Morfiy пишет:

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

  11. Luckyboy пишет:

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

  12. Сергей пишет:

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

  13. Илья пишет:

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

  14. закрути пишет:

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

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

  15. partnner пишет:

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

  16. Luckyboy пишет:

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

  17. Nata пишет:

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

  18. Luckyboy пишет:

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

  19. Яфа пишет:

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

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

  20. Борис пишет:

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

  21. Сергей пишет:

    Добрый день. Подскажите пожалуйста как правильно сделать редирект 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

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

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

  22. Luckyboy пишет:

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

  23. casino agat пишет:

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

  24. марат пишет:

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

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

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

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

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

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