Как сделать 301 редирект в htaccess

Продолжаем цикл статей для новичков.

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

В одной из прошлых статей я обещал написать про то, что такое 301 редирект, и зачем он нужен.

301 Permanent Redirect - перенаправление одного url на другой, на постоянной основе. Позволяет перенести ссылочный вес старой страницы на новую. Обычно используется при переезде сайта на новый домен, склейки дублей страниц и перенаправления с www на "без www" и наоборот.

301 редирект очень полезный инструмент в арсенале оптимизатора. Он позволяет безболезенно менять url, домены, склеивать дубли и делать ещё кучу полезных вещей.

Он передает:

Он не передает:

  • Возраст.
  • Фильтры и санкции (при условии, что после переноса, над сайтом были проведены работы по улучшению)
  • Нахождение в каталогах (типа яка или дмоза), что в принципе, логично.

Редиректы прописываются в файле .htaccess  и бывают следующих видов:

Редирект с www на "без www":

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$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]

Такой редирект необходим для того, что бы сконцетрировать весь ссылочной вес на выбранном вами зеркале сайта. Да и вообще, это правильно с точки зрения оптимизации.

Редирект с site.ru/index.php на site.ru:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

Редирект с site.ru/index.php на www.site.ru:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

Это необходимо для того, что бы "вылечить" одну из самых больших проблем оптимизации - дубля главной страницы. Конечно в самых популярных CMS, типа wordpress, проблема уже решено, но это только в самых популярных cms :)

Редирект со страницы на страницу:

Redirect permanent /oldpage.html http://new-site.ru/newpage.html

или

Redirect 301 /oldpage.html http://new-site.ru/newpage.html

Причем, можно редиректить как можно "внутри" домена, так и с одного домена на другой.

Если включить фантазию, то 301 редиректом можно решить очень много проблем с оптимизацией (особенно в джумле :)), да и вообще улучшить конверсию на сайте. Главное не перестараться, и перед добавлением редиректов делать бекап файла .htaccess.

Ну вот и подошел к концу наш маленький, но очень нужный и полезный пост. Подписывайтесь на обновления. Дальше больше. Дальше интереснее.

И да прибудет с вами seo!

  • [...] Про редиректы в htaccess можно почитать в этой статье про 301 редирект. [...]

  • Огромное спасибо. просто и доходчиво. Давно пытался разобраться с редиректом. Зотя некоторык вопросы всё же остались. Если будет возможность, расскажите, пожалуйста как делают редирект по принципу http:// go. ОСНОВНОЙ ДОМЕН/?http:// САЙТ КУДА НАДО ПЕРЕНАПРАВИТЬ По умолчанию такой редирект используется на сервисе блогов blog.ru

  • Статья хорошая, спасибо. Я недавно создала сайт и была во всем крайне не уверена, Всего боялась, читала умные статьи, советы давали противоречивые, конечно наделала много ошибок. И вот теперь такой вопрос: ссылки я создавала так сайт/рубрика/название статьи, потом - сайт/название статьи, потом сайт/название статьи/html, как сделать редирект для этого случая?

    • насколько я помню, если менять настройках водпресса (в актуальных версиях), то редирект настраивается сам. Проверьте. Перейдите по старому адресу, если кинет на новую страницу, то все ок.

  • Спасибо за полезную статью. Как раз искал как сделать редирект старых и уже не нужных страниц на новые.

  • Ваш коментарий: