301 Redirect (редирект 301) как делается
- Подробности
- Категория: Технические моменты
- Просмотров: 5730
Permanent Redirect 301 или - технический момент в построении правильной ссылочной структуры сайта. Множество ошибок и неприятностей возникает, когда Redirect 301 настроен неправильно. Из-за этого поисковыми системами сайт может восприниматься не самым лучшим образом и в поиске сайт точно не будет находится в ТОП10-20.
Поэтому давайте настраивать свой сайт изначально правильно и не упускать столь важные технические моменты в будущем продвижении сайта...
301 редирект - это код 301, который отдает сервер в ответ на запрашиваемую страницу. Данный redirect (перенаправление страницы) можно прописать в файле .htaccess, который находится в корне вашего сайта и означает, что страница(цы) перемещена навсегда(moved permanently). Не путайте с 302ым редиректом, в котором перенаправление подразумевается временное.
Когда делается 301-ое (постоянное) перенаправление
1. Нужно сразу отметить, что желательно его делать и проектировать на этапе создания сайта, чтобы страницы сайта уже сразу попадали в индекс поисковиков с нужными url-ами.
2. Если адрес(урл) страницы или группы страниц предполагается изменить. То есть адреса страничек вашему сайта вам почему то не нравятся и вы решили все поменять, чтобы они были удобочитаемы, сделать чпу и к вашему сайту поисковики относились как можно более лояльно.
3. Также наиболее распространенный способ использования 301-ого редиректа - при смене домена, постоянной переадресации с другого сайта или при склейке зеркал сайта (например с www на без www или наоборот). В настоящее время Яндекс научился определять и выделять одно зеркало сайта, но можно и не дожидаясь его самовольных действий, порекомендовать ему - как делать правильно.
4. Дубли страниц - зло, которое мешает продвижению сайта. Триста первый тут самый явный товарищ и умелые сеошники знают об этом.
Redirect 301 через .htaccess (примеры)
Постоянное перенаправление часто делается через файл .htaccess, поэтому данный метод и будем рассматривать ниже на примерах. У вас он может быть в виде htaccess.txt в этом случае он работать не будет и его надо переименовать в вариант выше - .htaccess(вы все правильно видите впереди точка).
Для большинства стандартных перенаправлений вначале данного файла указываем это:
RewriteEngine On
это необходимо для включения модуля mod rewrite на сервере Apache.
Но лучше написать так:
RewriteEngine On
RewriteBase /
, где RewriteBase / - показывает, что отсчет переадресаций должен вестись от корня сайта, а не от реального адреса сервера(он намного длиннее).
Далее пишем уже сами редиректы
Примеры
- Уточним в каком виде мы хотим видеть наш домен с www или без www:
а) перенаправляем навсегда имя вашего домена с без www НА www:
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
или так:
RewriteCond %{HTTP_HOST} ^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
б) перенаправляем навсегда имя вашего домена с www на БЕЗ www:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
или так:
RewriteCond %{HTTP_HOST} ^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
где:
- RewriteCond - условие, и если обнаруживается равенство ему, то выполняется RewriteRule.
- остальные символы это часть регулярных выражений(()-символ группировки для более удобного использования далее с помощью простого символа % и прибавлением к нему цифры начиная с единицы; ! - символ отрицания; ^ - указывает на то, что здесь начало строки, а $ - конец строки; \ - обратный слэш это экранирование, точка обозначает любой только один символ). Это были метасимволы регулярных выражений, о модификаторах и флагах читайте в статье о регулярных выражениях.
Сразу давайте разберем для примера, если у вашего сайта появились дубли, допустим, главной страницы вида http://site.ru/page-name.html&post=-1234 то делаем так:
RewriteCond %{REQUEST_URI} ^(.*)\&post=
RewriteRule ^(.*)\&post=(.*)$ $1 [R=301,L]
Следующий пример ссылка такого вида: http://site.ru?utm_source=twitter, 301 редирект будет такой(то есть подобные ссылки будет редиректиться также):
RewriteCond %{QUERY_STRING} ^utm_source=
RewriteRule (.*) $1? [R=301,L]
%{QUERY_STRING} - показывает то, что есть в ссылке после знака вопроса.
Мы уже писали о том, как делается настройка редиректа с http на https
Простой 301 redirect
Для простого редиректа одной страницы на другую воспользуемся конструкцией:
Redirect 301 /page1.html http://site.ru/page2.html
Последовательность: Необходимо соблюдать последовательность перенаправлений, для этого следующий пример:
RewriteRule ^dir/about.html /about.html [L,R=301]
RewriteRule ^dir(.*)$ /inf.php [L,R=301]
То есть, в этом примере первая строчка - это простое перенаправление странички из директории dir на страничку about.html. Вторая - показывает, что всю папку dir надо надо переадресовывать на страничку inf.php. Если бы мы поставили эти строчки наоборот то первый редирект бы не сработал, потому что страничка dir/about.html также находится в той же папке dir. То есть все выполняется последовательно сверху вниз.
Редирект 301 с одного сайта на другой
1 способ:
Redirect 301 / http://www.website.com/
2 способ:
RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule (.*) http://new-site.ru/$1 [R=301,L]
Я не могу, кто поможет?
Если не можете самостоятельно или не уверены, есть специализированные сервисы:
- https://www.webconfs.com/seo-tools/similar-page-checker/
- https://www.rapidtables.com/web/tools/redirect-generator.html
Как проверить 301 redirect
Во-первых, визуально, во-вторых - в Яндекс Вебмастер есть Проверка ответа сервера
Ну, а если ничего не помогло, то вот еще есть пару:
Также по теме: обеспечиваем безопасность папки с помощью 301 редиректа
Полезно будет узнать также: