301 редирект на главную страницу

301 редирект в SEO

Редирект 301 или 301 Permanent Redirect — это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!

Так же при 301 редиректе происходит склейка тИЦ (читаем что такое тиц) и PR — т.е. вы можете сохранить старое значение на новом адресе. Вы можете нисколько не потерять в глазах поисковых систем. Давайте перейдем от теории к практике.

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

Все правила записываются в виде:

Теперь непосредственно займемся переадресацией и разберем конкретные примеры.

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

Примеры использования 301 редиректа

Редирект с index.php на главную

Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

Склеиваем алиасы сайта

Если у вас несколько доменов и вы хотите все их перенаправлять на основной сайт, то используем:

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

Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:

Редирект с домена без www на домен с www

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории

Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:

Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:

Редирект на новую страницу

Самый простой редирект со страницы на страницу, для это просто пропишите так:

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

Редирект для url с параметрами

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

Работаем с расширениями

Правильный 301 редирект на новый домен

Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.

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

Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂

Понравился пост? Сделай репост и подпишись!

Рекомендую к прочтению

Яндекс острова. Что это и что нас ждет? Польза или вред?

Увеличение трафика на сайт или как поднять посещаемость

Читайте также:  что нельзя делать перед колоноскопией

Источник

Код состояния HTTP 301 или Moved Permanently («Перемещено навсегда») — стандартный код ответа сервера, который может быть получен, если запрошенный URL-адрес сайта был навсегда перенесен в новое месторасположение.

Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.

Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.

Options +FollowSymLinks
RewriteEngine On

# Текстовый комментарий, данная строчка не будет обрабатываться.

RewriteCond % ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://pixelplus.ru/$1 [R=301,L]

Redirect 301 /was.php http://www.site.ru/new.php

При этом, новый адрес указывать необходимо полностью с http и доменным именем.

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

Скажем, адрес страницы имеет вид: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 тогда для настройки 301 переадресации на новый адрес, необходимо использовать следующее правило:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=111$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:

RewriteCond % ^abc$ [NC]
RewriteRule ^$ /? [R=301,L]

Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать спецсимвол $ в правиле.

RewriteRule ^dir/$ http://www.site.ru/new-dir/ [R=301,L]

Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.

RewriteCond % ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

И для домена в зоне РФ:

RewriteCond % ^xn-. \.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^si-te\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]

RewriteRule ^dir(.*)$ /new-file.php [L,R=301]

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]

RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L]

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.

DirectoryIndex index.html index.php index.htm index.shtml

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

Для всех индексных страниц на сайте:
RewriteRule ^(.*)index\.php$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru% [R=301,NC,L,QSA]

RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]

Код позволяет поставить 301-редирект со всех папок вида http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]

Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/

Позволяет устранить наличие дублей URL с HTTPS в индексе поисковых систем.

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.

Внимание, важно чтобы код ответа сервера для 404 ошибки был именно 404. Путь к файлу указывается с помощью следующей строчки:

ErrorDocument 404 /404-for-me.php

! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.

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

RewriteCond % (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]

Читайте также:  муж насмотрелся на сварку болят глаза что делать

RewriteCond % !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond % ^view=featured$ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond % ^idc=4&marea=6$ [NC]
RewriteRule ^index\.php$ /? [R=301,L]

. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.

.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

\w — буква, цифра или подчёркивание _.
\d — заменяет любую цифру.
\D — заменяет любой символ, но не цифру.
2 — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

Памятка по используемым символам и обозначениям

Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.

Спецсимволы, используемые в правилах и их значения.

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

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

Источник

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

Код состояния HTTP 301 – ответ сервера на запрос браузера пользователя или поисковой системы, означающий, что запрашиваемая страница, более не доступная по текущему адресу, перемещена постоянно на новый, прежний URL является неактуальным, а вес с него переносится на новый адрес.

Для чего нужен 301 редирект

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

Когда необходим редирект

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

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

Переадресация должна выполняться со всех адресов старого домена на аналогичные страницы нового домена.

В данном случае необходимо перенаправлять пользователей со страниц с незащищенным протоколом http на страницы с защищенным протоколом https.

Такая необходимость может возникнуть в нескольких случаях – смена CMS, смена урловой структуры на сайте и т.д.

Таким образом, необходимо отправить пользователей с site.ru/page1/ на site.ru/catalog/page1/.

Такая необходимость появляется, например, если вы хотите отделить какое-либо направление своего сайта в отдельное.

Читайте также:  сальск здоровье на павлова телефон регистратуры

Например, вебмастер покупает домены site.com, site.ru, site.net, site.org и site.biz и на четырех последних сайтах настраивает редирект на основной – site.com.

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

Основные правила настройки переадресации

Основные способы настройки редиректов

Например в 1C-Битрикс существует множество модулей, таких как SEO Редиректы.

Для других CMS также можно установить модули. Вот некоторые ссылки на модули для распространенных CMS: Opencart, WordPress, Webasyst.

header(‘HTTP/1.1 301 Moved Permanently’);

Например, rewrite ^https://$host$request_uri? ;

$host – имя хоста из запроса, если отсутствует – имя в поле «Host» заголовка, если тоже отсутствует – имя сервера;

$request_uri – первоначальный запрос с аргументами (все, что идет после доменного имени).

могут иметь следующие параметры:

permanent – перенаправление с кодом 301,

redirect – перенаправить с кодом 302,

last – закончить обработку с переходом в новый location,

break – закончить обработку и остаться в текущем location.

Все возможные правила переадресаций для разных задач

Мы постарались подобрать самые часто используемые правила перенаправления. Если вдруг какое-то правило перенаправления не сработает на вашем сайте, попробуйте альтернативное из нашего списка. Стоит учесть, что не все представленные правила могут работать корректно при той или иной настройке сервера либо с той или иной CMS.

Склейка зеркал сайта (www и без www)

301 редирект с www на без www (главное зеркало – домен без www):

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

301 редирект с без www на www (главное зеркало – домен с www):

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

Редирект с http на https

Если данная конструкция не сработает, попробуйте другой вариант:

Если циклическое перенаправление на страницах осталось, попробуйте такой вариант:

Если редирект не работает и в этом случае, попробуйте такой вариант:

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

Для одной страницы

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующее:

Редирект с https на http

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:

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

Редирект с двух последовательных слешей на один

Если необходимо сделать 301 редирект для устранения двух или множества последовательных слешей и заменить их одним в URL, то прописывается следующее:

Редирект со страниц со слешем на без слеша (для всего сайта)

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

Или более короткий вариант:

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

Редирект со страниц без слеша на слеш (для всего сайта)

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

Один 301 редирект (а не два последовательных!) на без www и со слешем на конце адреса страницы

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

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

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

Один 301 редирект (а не два последовательных!) на c www и со слешем на конце адреса страницы

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

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

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

Один 301 редирект (а не два последовательных!) на c www и без слеша на конце адреса страницы

Источник

Образовательный портал