Как сделать и зачем нужен 301 редирект
В первую очередь, перед тем как переходить непосредственно к действиям, хочется описать в нескольких предложениях, что такое 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
Однако, у этого способа есть недостаток – все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно.
2leep.com











Полезный материальчик ты накатал! Сам часто пользую различные редирексты, например при переезде с rav4click.ru на homelerss.ru
Спасибо.
Ага, я подписан на твой блог, видел, что ты переехал
Недавно сделал 301 редирект. Спустя 2 недели все параметры гугл хорошо “принял” для нового домена со старого. Вернул pr4 и т.д. А вот яндекс…он просто не индексит новый домен. ВООБЩЕ. Мне что насильно надо удалять старый домен из индекса сначала? или просто дольше ждать, пока яндекс все поймет? Сейчас домена нового нет в выдаче яндекса))) Прям не знаю, что делать.
Старый удалять не надо, просто надо ждать. Домен через add Url добавить в яндекс новый.
Да, действительно. Вчера яндекс проиндексировал новый сайт и теперь он в топ-3 по нужным запросам. Спасибо за советы. Очень приятно понимать, что есть люди, которые бескорыстно могут помочь
Помогите, не могу сделать 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
это вообще не возможно?
Думаю, что выглядеть это должно примерно так:
Redirect 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
Я хочу разделить свой нынешний блог, и перенести статьи с доимена ru на info с тем же именем. На прежнем пойдет акцент на блоговых проблемах (общение, конкурсы, эстафеты и т.п.), а статьи хочу перенести на новый, иначе огранизованный, уже не-блоговый сайт. Имя будет то же (vseuch), хочу и по оформлению сделать сходным. Это как будет оцениваться? Не делаю ли я грубейшую ошибку? Достаточно ли будет использовать 301 редирект для переносимых статей?
Ну вообщем да, думаю что достаточно. По оформлению – это критично не повлияет.
А что если просто в robots.txt прописать адрес нового сайта тИЦ, PR и не склеются и роботы не перейдут на новый URL?
Что то так и не понял как сделать редирект с одного домена на другой???
Попробуйте поискать информацию еще в других местах. Я сейчас немного отдалился от этих вопросов (технических) и точно уже не помню.
Спасибо! Нам очень помогла Ваша статья. С помощью нее у нас теперь все работает!
По самым последним сведениям pr при редиректе передается не полностью: http://dezhik.ru/2010/03/301-redirekt-ne-polnostyu-peredaet-pr/
Решил на сайте разместить движок каталога статей. Ранее на сайте статьи размещать вручную в виде статичных HTML файлов. Пришло время автоматизировать данный процесс и естественно перенести на новый двиг старые статьи.
Чтобы не упасть в выдаче выход редирект 301. Спасибо за информацию.
За статью спасибо! вопрос такой: а mysite.ru (pr3) mysite.ru/index.htm (pr2) следует ли сливать через редирект 301?
Да, такое дело следует слить. Так как от дублей типа – mysite.ru/index.htm следует избавляться.
Здравствуйте. Подскажите пожалуйста. А если у меня есть поддомен. Он не связан с тематикой домена и стал раскручиваться. Я хочу сделать из него самостоятельный сайт. Как это лучше и правильнее сделать?
Если пока не очень раскрученный, просто залейте его на самостоятельный домен и все. Продвигайте.
Спасиб за инфу, четко и ясно, на других форумах сопли жуют.
Поставил-таки на свой блог, надеюсь заработает как надо.
Спасибо за подробный пост! Наконец-то разобрася с редиректом.
Добрый день. Подскажите пожалуйста как правильно сделать редирект 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
Так правильно или по другому нужно делать?
Заранее спасибо.
Приветствую. Да, получается, что так. Почему говорю так не уверенно – очень давно не имел дела с редиректами, однако исходя из поста – должно сработать.
Хочу добавить, для того чтобы редирект наверника увидел яндекс, нужно прописать в файле robots директиву Host, пример:
User-agent: *
Disallow: /cgi-bin/
Disallow: /data/
…………………….
…………. и т.д если у вас есть эти строки после них нужно писать следующее
User-agent – для яндекса:
User-agent: Yandex
Disallow:
Host: online-casinowm.ru
ХЗ зачем указал в файле sitemap адрес:
http://мой_сайт/ndex.php
а так как на мой сайт есть внешние ссылки с адресом http://мой_сайт
то теперь гугл видит 2 абсолютно одинаковые страницы:
http://мой_сайт
и
http://мой_сайт/ndex.php
пока никто не ругает меня, но меня это нервирует…
Да и PR будет делиться.
Посоветуйте наилучшее решение…..