Как настроить 301 редирект используя .htaccess
Мы уже описывали в наших статьях, что такое .htaccess и как его настраивать, паролить директории и другое. Сегодня мы хотим поговорить о том как можно настроить 301 редирект с несуществующих страниц сайта на необходимые Вам.
301 редирект (перенаправление) бывает необходим не только для того, что бы настроить его для несуществующих страниц Вашего сайта, а так же в случае смены доменных имен, изменения алиаса категорий, при переносе материалов в другую категорию, а так же для выбора главного зеркала домена.
Настройка для выбора главного домена и зеркала
Такую настройку необходимо проводить на начальном этапе создания сайта и самое главное, что бы она уже была выполнена до того как Вы откроете сайт и разрешите поисковым системам его индексировать. Делается это для того, что бы точно выбрать основной домен и его зеркало, что бы поисковые машины знали какой домен индексировать, а так же если Вы будете делиться в соцсетях или пользователи будут обмениваться ссылками на Вас, что бы они всегда были одного формата с www или без www.
По умолчанию на любой сайт можно войти как пример:
http://ваш_домен.ру
так и
http://www.ваш_домен.ру
так же и поисковые системы будут переходить по ссылкам на Ваш сайт и индексировать его по разным url из-за чего в поиске могут появиться дубли страниц. Конечно если Вы зайдете в кабинеты web мастеров яндекса и google (как зарегистрировать сайт в кабинетах веб мастера yandex и google мы подробно описали на нашем форуме в разделе FAQ) и выставите там главное зеркало сайта не на усмотрение поискового робота, а именно Ваше которое Вы считаете нужным то поисковая система будет понимать основной домен сайта и его зеркало, но это не уберет ссылки на Ваш сайта в сети интернет и пользователи как попадали к Вам с приставкой www так же будут попадать и без нее и соответственно делиться ссылками так же в итоге поисковые системы учитывают обратно ссылочную массу сайтов которые ссылаются на Вас и за счет этого складывается рейтинг Вашего сайта для поисковых систем, а если ссылки на Ваш сайт будут разные то соответственно Вы получите меньше сайтов которые ссылаются на Вас. Как вы определились с выбором главного домена сайта Вам необходимо в файле .htaccess который лежит у Вас в корневом каталоге сайта добавить следующие строки:
Перенаправление с www на без www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.домен.ru
RewriteRule ^(.*)$ http://домен.ru/$1 [R=301,L]
Обратное перенаправление:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^домен.ru
RewriteRule (.*) http://www.домен.ru/$1 [R=301,L]
Внимание
Если у Вас в .htaccess уже есть строка RewriteEngine On то не нужно их плодить просто вставьте нужные Вам строки ниже этой надписи. Так же посмотрите внимательнее так как в некоторых cms строка RewriteEngine On закоментирована символом # который Вам необходимо убрать, что бы правило заработало. После проведения данных манипуляций у Вас всегда будет открываться сайт с выбранным Вами главным доменов.
Так же не забудьте после того как выбрали необходимый домен в качестве главного пропишите его в файле robots.txt в дерективе Host как это сделать мы уже описывали в статье.
Перенаправление при изменение домена сайта или перемещения статей
Довольно часто бывает, что необходимо сменить домен сайта или Вы изменили название категории сайта, а так же ее алиас или просто перенесли статью и в данном случае посетители вошедшие к Вам на сайт из поисковых систем увидят 404 страницу ошибки и это не самое главное о чем стоит переживать. А переживать нужно из за того, что поисковые системы вообще выкинут эту страницу из индекса и соответственно Вы потеряете посетителей, а так же если таких страниц с ошибками будет много Вы потеряете еще и рейтинг в поисковых системах. Именно для того, что бы избежать таких проблем и существует 301 редирект.
В случае если Вы изменили название категории сайта и у Вас получилось, что все материалы которые предположим принадлежали категории /blogs стали принадлежать категории /blog-page то Вам необходимо добавить в Ваш файл .htaccess такие строки:
RedirectMatch 301 ^/blogs http://krutim-all.ru/blog-page
В таком случае все материалы которые лежали в старой категории будут открываться по старым адресам и в момент открытия будет происходить перенаправление на новую категорию и тот же самый материал. Если Вы сделаете все правильно то Вы не потеряете посетителей, а так же сообщите поисковым системам, что страница с данными материалами находятся по другому адресу и со временем поисковые системы переиндексируют все материалы и при желание данное перенаправление можно будет убрать.
В случае если Вы так же переместили любую статью или несколько статей можете указать перенаправление для каждой статьи:
redirect 301 staray_stranica.html http://ваш_домен.ru/novay_stranica.php
Таких строк можете добавить сколько угодно по Вашему усмотрению.
Если Вы изменили доменное имя и Вам необходимо перенаправлять всех пользователей которые входят по старым ссылкам на навый домен и те же страницы то необходимо указать в файле .htaccess следующие:
RewriteEngine On
RewriteCond %{HTTP_HOST} stariy_domen.ru
RewriteRule (.*) http://noviy_domen.com/$1 [R=301,L]
В таком случае все посетители будут перенаправлены на новый домен и со временем запомнят его, а так же поисковые системы постепенно переиндексируют весь Ваш сайт.
Помните, что внося любые изменения в файл .htaccess обязательно проверяйте работоспособность не только того редиректа который Вы делали, но и всего сайта так как достаточно немного ошибиться и в течении очень короткого времени потерять индексацию всего сайта.