Как применять редирект 301 в файле htaccess

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

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

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

В тоже время, перед любыми изменениями в файле .htaccess настоятельно советуем делать резервную копию.

Редирект 301 считается постоянным редиректом, который передает почти 90-99% ссылочного веса. Этот редирект показывает, что страница была перемещена согласно новому адресу, а прежний URL необходимо считать устаревшим.

С целью определения основного зеркала сайта

Проведение редиректа сайта с версии с www на версию без www:

RewriteCond %{HTTP_HOST} ^site.com$ [NC]

RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

и

Осуществление редиректа с версии без www в версию с www:

RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]

RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

Оба предложенных варианта практически являются равнозначными и справедливы для всех роботов поисковых систем. Однако, если на вашем сайте большинство страниц в индексе и в ТОПе без www, то предпочтительнее сохранить переадресацию в версию без www, и наоборот.

Основное зеркало сайта

Кананизация слеша в конце URL

— http://www.site.com/cat1/

— http://www.site.com/cat1

Если местоположение страницы сайта различается хотя бы в одном единственным знаке (символе), то роботы поисковых систем считают подобные страницы совершенно разными. Кроме этого, если данные страницы будут содержать еще и одинаковый контент, то это уже будет дублированием страниц, что отрицательно восприниматься ПС.

В связи с этим, весьма немаловажно контролировать, чтобы все без исключения URL страниц сайта существовали только лишь в нижнем регистре и одного формата (с слэшом либо в отсутствии слэша в конце URL). Равно, как и для требований с www — настраивайте перенаправления на соответствующую версию страницы, с которой на вашем сайте больше всего находятся в индексе.

Формирование редиректа с целью удаления «/» в конце:

RewriteCond %{HTTP_HOST} (.*)

RewriteCond %{REQUEST_URI} /$ [NC]

RewriteRule ^(.*)(/)$ $1 [L,R=301]

и

Осуществление редиректа с целью добавления «/» в конце URL:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Может так же быть редирект с одной страницы на другую страницу:

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Кроме этого, следующий редирект для дублей главной страницы четко гарантирует, что любой адрес домашней страницы сайта, который может включать несколько версий прямых ссылок имени страницы, например, default.htm или index.html, будет перенаправлен на каноническую главную страницу, http://www.site.com:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /([^/]+/)*(default|index|main).(html|php|htm) HTTP/ [NC]

RewriteRule ^(([^/]+/)*)(default|main|index).(html|php|htm)$ http://www.site.com/$1 [L,R=301]

 Канонизация слеша в конце урла

 Выполнение редирект с любого URL в URL нижнего регистра

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

Но, в случае если вами изначально был упущен этот момент, в таком случае предпочтительно в целом воспользоваться следующим кодом с целью редиректа на уровне скрипта php:

$lowerURI=strtolower($_SERVER[‘REQUEST_URI’]);

if($_SERVER[‘REQUEST_URI’]!=$lowerURI)

{

header(«HTTP/1.1 301 Moved Permanently»);

header(«Location: http://» . $_SERVER[‘HTTP_HOST’] . $lowerURI);

exit();

}

 Редирект нижнего регистра

Редирект в случае переезда на новый домен

При замене домена, в случае переезда, необходимо учитывать все рекомендации Яндекса и Google, в части проведения редиректа со всех страниц сайта, кроме файла robots.txt.

В этом случае код для настройки редиректа будет иметь следующий вид:

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]

RewriteRule ^([^/]+) $1 [L]

RewriteCond %{HTTP_HOST} !^www.site.com

RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

При этом в файле robots.txt следует прописать директиву Host на новый домен.

User-agent: Yandex

Disallow:

Host: sitenew.com

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

Оптимальная стратегия редиректа 301

Проведение редиректа со всех страниц сайта на главную страницу другого домена

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule !(^$|.*.(css|jpg|gif)) / [R=301,L]

Эта делается в том случае, если у вас остался прежний сайт, который совершенно не подходит по тематике и/или структуре к новому, но вы бы хотели перенести его ссылочную массу на свой новый домен.

 Редирект в случае переезда на https

RewriteCond %{HTTPS} =of

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Аналогично ситуации как и со слэшами и главным зеркалом, основная задача подобного редиректа заключается в исключением дублей страниц. Кроме этого, при переходе сайта в https советуем применять и HSTS. 

Необходимо учитывать то, что даже при настройке редиректов в https продолжает сохраняться вероятность отправке http заросы к сайту. В этом случае, HSTS поясняет браузеру, что роботы поисковых систем «не общались» с веб-сайтом по http.

Даже в случае, если браузер повстречает на данном сайте ссылку http, либо пользователь установит её руками, то запрос будет сразу направлен на https версию сайта, а не пойдет в круговую, сначала в http версию, а затем через редиеркт 301 на https.

 Редирект в случае замены каталога, содержащего материалы

RewriteRule ^catalog /catalog-new/$1 [R=301,L]

Это метод как правило применяют в случае, если конструкция каталога отражается в URL, и следует изменить её (например, для того чтобы дополнить в URL основное ключевое слово либо уменьшить его длину).

Если структура каталога у вас отображается в URL, то при перекаталогизации у вас, соответственно, будут изменяться и сам URL. В таком случае редирект будет выглядеть следующим образом:

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]

Если URL прежнего каталога начинается сразу после домена: www.site.com/old-catalog/, то необходимо применять следующий код:

RewriteRule old-catalog /(.*) / old-catalog /$1 [R=301,L]

Редирект каталога

Редирект с одной странички в другую

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

Redirect 301 /oldpage.html http://site.com/newpage.html

Редирект одной страницы на другую

Если нужно склеить несколько символов в один символ (например, склеить два дефиса в один):

RewriteCond %{REQUEST_URI} ^(.*)—(.*)$

RewriteRule . %1-%2 [R=301,L]

Подобные страницы имеют все шансы появляться из-за неправильной настройки маршрутизаторов. Например, два пробела последовательно никак не объединяются и преобразуются в два дефиса, или маршрутизатор постоянно дописывает в конце «/», никак не контролируя его наличие.

Перенаправление одного адреса без вложенных адресов

Если необходимо настроить редирект со страницы типа http:/site.com/category/, а другие страницы должны продолжать выполнять свои функции без учета данного редиректа. Например, в страницу http://site.com/category/post-1/, необходимо добавить единственный знак — $.

RewriteRule ^category/$ http://site.com/new-category/ [R=301,L]

Так, если большая часть материалов вашего сайта находятся в папке catalog, а страница site.com/catalog не содержит никакого контента.

Если же вы не хотите тратить свое время на определение, как правильно настроить редиректы сайте, тогда лучше обратиться к профессиональным сеошникам, среди которых можно отметить веб-студию SEO MASTER, которые за небольшую плату сделают вам грамотную настройку редиректов, и смогут укрепить позиции вашего сайта.

Posted in ПОЛЕЗНОЕ, SMO оптимизация and tagged , , , , , , .

One Comment

  1. Очередной хит-сайта!!! Отлично расписано применение редиректа 301 в файле htaccess. И теперь когда выложены примеры, что и как проверять и делать, — только полный респект! Даже картинки поясняющие есть…Мне понравилось, а главное написано все понятным и доступным языком. Молодцы!

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.