Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Программы
  • 301 редирект на другую страницу. Редирект всего каталога на другую страницу

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

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

Что такое 301 редирект и зачем он нужен?

301 редирект призван помочь вебмастерам переадресовать пользователей с одного URL, который изначально был в адресной строке браузера, на совершенно иной. С точки зрения поисковой оптимизации, 301 Moved Permanently - это постоянный редирект, который помогает переместить до 99% ссылочного веса на новый URL, а старый «пометить» в качестве устаревшего. То есть благодаря этому удастся сохранить позиции в поисковых системах, а если просто изменить адрес URL, не делаля редирект, то для Яндекса и Гугла это будет новой страницей, которая будет ранжироваться без связки с предыдущей историей.

Есть несколько вариантов, когда нужно воспользоваться этим редиректом:

  • при совершении склейки доменов;
  • для переезда сайта на новый адрес, например, в случае снижения трафика вследствие попадания вашего ресурса под фильтры поисковиков. 301 редирект не позволит тем, кто добавил ваш сайт в закладки, потерять его из виду;
  • чтобы увеличить показатели тИЦ, PR, трафик из ПС на основном сайте. В этом случае понадобится приобрести домен, который обладает неплохими показателями и настроить редирект на тот ресурс, который нуждается в улучшении данных параметров;
  • при смене адреса конкретной страницы для сохранения высоких позиций в ПС (например, это может быть актуально при переезде сайта из одной CMS в другую);
  • и др.

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

Вариантов решения задачи по настройке 301 редиректа есть несколько. Каким из них воспользоваться - зависит от технических возможностей хостинга . Но у современных хостеров подобных проблем обычно не возникает, а если и появляются, то решается быстро через тех поддрежку. Вот парочка основных ситуаций простого редиректа, с которыми вы можете столкнуться. Для этого понадобиться создать файл с именем.htaccess (если его нет), а затем внести в него нужный код редиректа. Если создать его просто на рабочем столе не получается, то попробуйте сделать это через программу Total Commander, либо FileZilla просто переименовав любой ненужный документ.

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

Redirect 301 / http://site.ru

А если нужно организовать перенаправление со страницы на страницу сайта, то понадобится вот такой код:

Redirect 301 /старая-страница.html http://новый-домен.ru/новая-страница.html

RedirectPermanent /старая-страница. html http://новый-домен.ru/новая-страница.html

Как склеить домен с www с вариантом без?

В данный момент применение www в названии сайтов считается устаревшим. Однако, такой вариант встречается нередко. Если это не покупка готового сайта , то при создании нового ресурса лучше указывать везде без www. При склеивании доменов объединяются все их самые важные параметры, такие как тИЦ, PR и посещалка. К тому же это поможет оптимизировать ресурс, и избежать ситуации, когда ПС отражение сайта с www принимают за «самозванца» с «ворованным» контентом.

Код для склеивания домена с использованием www на домен без www выглядит так:

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

При этом значение RewriteEngine on/off является специализированной директивой, служащей для подключения либо прекращения доступа к коду самого файла. А доступ происходит посредством модуля mod_rewrite. RewriteCond - директива, используемая для формирования условий по правилам преобразования. А RewriteRule - предписание, отвечающее за производимые преобразования, в конкретной ситуации - редирект 301.

301 редирект при переезде на HTTPS

Современный тренд - перенос сайтов на защищенный протокол HTTPS. При этом настройка переадресации со страниц с HTTP на HTTPS является ключевым этапом. Делается это следующим образом в файле .htaccess.

RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://site.ru/$1

Примечания и ошибки

С чем можно столкнуться, и о каких деталях не стоит забывать при настройке 301 редиректа:

  • строгий учет последовательности правил редиректа - это первое, о чем следует помнить. Поэтому в случае не выполнения определенного правила, стоит перепроверить - нет ли иных редиректов, противоречащих ему;
  • 301 редирект имеет множество особенностей и непростой синтаксис, все это сложно постоянно держать в голове, - так что официальные мануалы вам в помощь. Кроме них, помочь может логика и последовательный перебор нескольких вариантов;
  • проверка работоспособности сайта и всех внедренных правил редиректа - это обязательное условие благополучного завершения его настройки. Не поленитесь зайти в разделы и страницы ресурса, не только на главную страницу, дабы исключить любые проблемы в дальнейшем. При допущении ошибок в синтаксисе инструкций вполне может перестать работать и весь сайт.

Также существует несколько ситуаций, когда использование 301 редиректа будет ошибочным. Так, лучше не применять многоходовый редирект, если его внедрение займет слишком продолжительное время. Или, например, при наличии контента, который дублируется, и по ряду причин нужно сохранить обе страницы для пользователей. Если страница и ее содержимое не релевантны, то от редиректа тоже стоит отказаться. Ошибкой будет настройка редиректа на некорректно работающую страницу (страница должна быть с 200 или 404 ответом сервера). И, наконец, неверным будет редирект файла robots.txt .

Другие виды редиректов

Опытные вебмастеры помимо самого популярного 301 редиректа используют и некоторые другие: от 300-го по 307-й. К примеру, 302 и 307 - это временный редирект, 305 - доступ исключительно посредством прокси и т. д. Также довольно востребованным типом редиректов можно назвать Meta Refresh. Он выполняется не на уровне сервера, а на уровне страницы. Однако, такой редирект эксперты рекомендуют применять как можно реже. Это обосновано тем, что к ним зачастую прибегают дорвейщики и спамеры. К тому же применение этого редиректа практически не дает возможности для передачи ссылочного веса.

Правила приведены для сервера Apache. В правилах: %{QUERY_STRING} - обозначает фрагмент URL -адреса после знака вопроса (задания значений CGI -параметров). Срабатывание того или иного правила для редиректа определяется тем, попадает URL -адрес страницы под это правило или нет. О значении тех или иных обозначений (^, $, NC и т.д.) .

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

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1 Redirect 301 /was.php http://www.site.ru/new.php

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

RewriteRule ^dir /dir-new/$1

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

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=111$ RewriteRule ^dir/index\.php$ /new/sef/?

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

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=(.*)$ RewriteRule ^dir/index\.php$ /new/sef/?

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

RewriteRule ^dir/$ http://www.site.ru/new-dir/

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

RewriteCond %{HTTP_HOST} ^old-site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

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

RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\..{1,10}$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ http://www.site.ru/$1/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ http://www.site.ru/$1 RewriteCond %{HTTP_HOST} ^si-te\.ru$ RewriteRule ^(.*)$ http://www.site.ru/si-te/ RewriteRule ^bitrix/ /bitrix/admin/ RewriteRule ^(.*)$ http://www.newsite.ru/new/ RewriteRule ^dir(.*)$ /new-file.php RewriteRule ^dir/no-file.html /no-file-new.html RewriteRule ^dir(.*)$ /all.php RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

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

DirectoryIndex index.html index.php index.htm index.shtml RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.site.ru/ RewriteCond %{HTTP_HOST} ^test.site.ru$ RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} RewriteRule [^abc]/unique-file.html /unique-file.html

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

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11

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

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

ErrorDocument 404 /404-for-me.php RewriteCond %{HTTP_HOST} ^(+)\.site\.com$ RewriteRule ^(.*) http://site.com/$1 RewriteCond %{HTTP_HOST} ^(+)\.site\.com$ RewriteCond %{HTTP_HOST} !=one.site.com RewriteRule ^(.*) http://site.com/$1

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

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

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

RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone)

RewriteRule (.*) http://mobile.site.ru/

RewriteCond %{HTTP_USER_AGENT} ! (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)

RewriteRule (.*) http://no-search.site.ru/

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/

RewriteCond %{QUERY_STRING} ^view=featured$ RewriteRule ^component/content/?$ /?

RewriteCond %{QUERY_STRING} ^idc=4&marea=6$ RewriteRule ^index\.php$ /? . - Точка заменяет произвольный символ. - обозначает перечень символов, совпадающих с буквами a, b, или с. [^abc] - перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с. * - означает, что предшествующий символ может повторяться (0 или более раз). * - команда найдёт идущие подряд символы из заданного набора. [^abc]* - с точностью до наоборот. .* - заменяет абсолютно любой набор символов. ".*" - найдёт все подстроки между кавычками. ^ - начало строки (в том случае, если используется в начале выражения). $ - обозначает конец строки. \w - буква, цифра или подчёркивание _. \d - заменяет любую цифру. \D - заменяет любой символ, но не цифру. - заменяет любую цифру. - любая буква от a до z (весь латинский набор символов) в нижнем регистре. - любая буква от A до Z в ВЕРХНЕМ регистре. - любая буква от a до Z в любом регистре. - то же самое. RewriteRule (.*) $1?

Располагать после: RewriteBase /

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

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

^ - спецсимвол начала строки;
$ - спецсимвол конца строки;
! - спецсимвол отрицания;
. - точка, заменяет любой символ, но только один;
() - группировка;
\ - «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.

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

Символ повторяется 0 или 1 раз.
+ - повторяется от 1 до 65536 раз.
* - повторяется от 0 до 65536 раз.

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

NC - флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R - флаг Redirect, производит процесс остановки изменения URL -адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY ).
L - флаг Last, останавливает формирования URL -адреса и строка считается окончательной.

  • Redirect 301 – теория и практика редиректа, настройка и правила использования

UPD :

RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

RewriteCond %{SERVER_PORT} ^443$ RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://your_site.com/$1

1. Термины и определения В настоящем соглашении об обработке персональных данных (далее - Соглашение) нижеприведенные термины имеют следующие определения: Оператор - ИП Днепровский Олег Александрович. Акцепт Соглашения - полное и безоговорочное принятие всех условий Соглашения путем отправки и обработки персональных данных. Персональные данные - информация, внесенная Пользователем (субъектом персональных данных) на сайте и прямо или косвенно относящаяся к данному Пользователю. Пользователь - любое физическое или юридическое лицо, успешно прошедшее процедуру заполнение полей ввода на сайте. Заполнение полей ввода - процедура отправки Пользователем имени, фамилии, номера телефона, персонального адреса электронной почты (далее - Персональные данные) в базу зарегистрированных пользователей сайта, производимая с целью идентификации Пользователя. В результате заполнения полей ввода персональные данные отправляются в базу данных Оператора. Заполнение полей ввода осуществляется добровольно. сайт - сайт, размещенный в сети Интернет и состоящий из одной страницы. 2. Общие положения 2.1. Настоящее Соглашение составлено на основании требований Федерального закона от 27.07.2006 г. No 152-ФЗ «О персональных данных» и положений Статьи 13.11 о «Нарушении законодательства Российской Федерации в области персональных данных» Кодекса об административных правонарушениях Российской Федерации и действует в отношении всех персональных данных, которые Оператор может получить о Пользователе во время использования им Сайта. 2.2. Заполнение полей ввода Пользователем на Сайте означает безоговорочное согласие Пользователем со всеми условиями настоящего Соглашения (Акцепт Соглашения). В случае несогласия с этими условиями Пользователь не осуществляет Заполнение полей ввода на Сайте. 2.3. Согласие Пользователя на предоставление персональных данных Оператору и их обработку Оператором действует до момента прекращения деятельности Оператора либо до момента отзыва согласия Пользователем. Акцептовав настоящее Соглашение, и пройдя процедуру Регистрации, а также осуществляя последующий доступ к Сайту, Пользователь подтверждает, что он, действуя своей волей и в своем интересе, передает свои персональные данные для обработки Оператору и согласен на их обработку. Пользователь уведомлен, что обработка его персональных данных будет осуществляться Оператором на основании Федерального закона от 27.07.2006 г. No 152-ФЗ «О персональных данных». 3. Перечень персональных данных и иной информации о пользователе, подлежащих передаче Оператору 3.1. При использовании Сайта Оператора Пользователем представляются следующие персональные данные: 3.1.1. Достоверная персональная информация, которую Пользователь предоставляет о себе самостоятельно при Заполнении полей ввода и/или в процессе использования сервисов Сайта, включая, фамилию, имя, отчество, номер телефона (домашний или мобильный), персональный адрес электронной почты. 3.1.2. Данные, которые автоматически передаются сервисам Сайта в процессе их использования с помощью установленного на устройстве Пользователя программного обеспечения, в том числе IP-адрес, информация из Cookies, информация о браузере Пользователя (или иной программе, с помощью которой осуществляется доступ к сервисам). 3.2. Оператор не проверяет достоверность персональных данных, предоставляемых Пользователем. При этом Оператор исходит из того, что Пользователь предоставляет достоверную и достаточную персональную информацию по вопросам, предлагаемым в Полях ввода. 4. Цели, правила сбора и использования персональных данных 4.1. Оператор осуществляет обработку персональных данных, которые необходимы для предоставления сервисов и оказания услуг Пользователю. 4.2. Персональные данные Пользователя используются Оператором в следующих целях: 4.2.1. Идентификация Пользователя; 4.2.2. Предоставление Пользователю персонализированных сервисов и услуг (а также, информирование о новых акциях и услугах компании, путём рассылки писем); 4.2.3. Поддерживания связи с Пользователем в случае необходимости, в том числе направление уведомлений, запросов и информации, связанных с использованием сервисов, оказанием услуг, а также обработка запросов и заявок от Пользователя; 4.3. В ходе обработки персональных данных будут совершены следующие действия: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, блокирование, удаление, уничтожение. 4.4. Пользователь не возражает, что указанные им сведения в определенных случаях могут предоставляться уполномоченным государственным органам РФ в соответствии с действующим законодательством РФ. 4.5. Персональные данные Пользователя хранятся и обрабатываются Оператором в порядке, предусмотренном настоящим Соглашением, в течение всего срока осуществления деятельности Оператором. 4.6. Обработка персональных данных осуществляется Оператором путем ведения баз данных, автоматизированным, механическим, ручным способами. 4.7. Сайт использует файлы Cookies и другие технологии, чтобы отслеживать использование сервисов Сайта. Эти данные необходимы для оптимизации технической работы Сайта и повышения качества предоставления услуг. На Сайтее автоматически записываются сведения (включая URL, IP-адрес, тип браузера, язык, дату и время запроса) о каждом посетителе Сайта. Пользователь вправе отказаться от предоставления персональных данных при посещении Сайта или отключить файлы Cookies, но в этом случае не все функции Сайта могут работать правильно. 4.8. Предусмотренные настоящим Соглашением условия конфиденциальности распространяются на всю информацию, которую Оператор может получить о Пользователе во время пребывания последнего на Сайте и использования Сайта. 4.9. Не является конфиденциальной информация, публично раскрытая в ходе исполнения настоящего Соглашения, а также информация, которая может быть получена сторонами или третьими лицами из источников, к которым имеется свободный доступ любым лицам. 4.10. Оператор принимает все необходимые меры для защиты конфиденциальности персональных данных Пользователя от несанкционированного доступа, изменения, раскрытия или уничтожения, в том числе: обеспечивает постоянную внутреннюю проверку процессов сбора, хранения и обработки данных и обеспечения безопасности; обеспечивает физическую безопасность данных, предотвращая неправомерный доступ к техническим системам, обеспечивающим работу Сайта, в которых Оператор хранит персональные данные; предоставляет доступ к персональным данным только тем сотрудникам Оператора или уполномоченным лицам, которым эта информация необходима для выполнения обязанностей, непосредственно связанных с оказанием услуг Пользователю, а также эксплуатации, разработки и улучшения Сайта. 4.11. В отношении персональных данных Пользователя сохраняется их конфиденциальность, кроме случаев добровольного предоставления Пользователем информации о себе для общего доступа неограниченному кругу лиц. 4.12. Передача Оператором персональных данных Пользователя правомерна при реорганизации Оператора и передачи прав правопреемнику Оператора, при этом к правопреемнику переходят все обязательства по соблюдению условий настоящего Соглашения применительно к полученной им персональной информации. 4.13. Настоящее Положение применимо только к Сайту Оператора. Компания не контролирует и не несет ответственность за сайты (сервисы) третьих лиц, на которые пользователь может перейти по ссылкам, доступным на Сайте Оператора, в том числе в результатах поиска. На таких Сайтах (сервисах) у пользователя может собираться или запрашиваться иная персональная информация, а также могут совершаться иные действия 5. Права пользователя как субъекта персональных данных, изменение и удаление пользователем персональных данных 5.1. Пользователь вправе: 5.1.2. Требовать от Оператора уточнения его персональных данных, их блокирования или уничтожения в случае, если персональные данные являются неполными, устаревшими, неточными, незаконно полученными или не являются необходимыми для заявленной цели обработки, а также принимать предусмотренные законом меры по защите своих прав. 5.1.3. Получать информацию, касающуюся обработки его персональных данных, в том числе содержащей: 5.1.3.1. подтверждение факта обработки персональных данных Оператором; 5.1.3.2. цели и применяемые оператором способы обработки персональных данных; 5.1.3.3. наименование и место нахождения Оператора; 5.1.3.4. обрабатываемые персональные данные, относящиеся к соответствующему субъекту персональных данных, источник их получения, если иной порядок представления таких данных не предусмотрен федеральным законом; 5.1.3.5. сроки обработки персональных данных, в том числе сроки их хранения; 5.1.3.6. иные сведения, предусмотренные действующим законодательство м РФ. 5.2. Отзыв согласия на обработку персональных данных может быть осуществлен Пользователем путем направления Оператору соответствующего письменного (распечатанного на материальном носителе и подписанного Пользователем) уведомления. 6. Обязанности Оператора. Доступ к персональным данным 6.1. Оператор обязуется обеспечивать недопущение несанкционированного и не целевого доступа к персональным данным Пользователей Сайта Оператора. При этом санкционированным и целевым доступом к персональным данным Пользователей Сайта будет считаться доступ к ним всех заинтересованных лиц, реализуемый в рамках целей деятельности и тематике Сайта Оператора. Вместе с тем Оператор не несет ответственности за возможное не целевое использование персональных данных Пользователей, произошедшее вследствие: технических неполадок в программном обеспечении и в технических средствах и сетях, находящихся вне контроля Оператора; в связи с намеренным или ненамеренным использованием Сайтов Оператора не по их прямому назначению третьими лицами; 6.2 Оператор принимает необходимые и достаточные организационные и технические меры для защиты персональной информации пользователя от неправомерного или случайного доступа, уничтожения, изменения, блокирования, копирования, распространения, а также от иных неправомерных действий с ней третьих лиц. 7. Изменение Положения о политике конфиденциальности. Применимое законодательство 7.1. Оператор имеет право вносить изменения в настоящее Положение без какого-либо специального уведомления Пользователей. При внесении изменений в актуальной редакции указывается дата последнего обновления. Новая редакция Положения вступает в силу с момента ее размещения, если иное не предусмотрено новой редакцией Положения. 7.2. К настоящему Положению и отношениям между Пользователем и Оператором, возникающим в связи с применением Положения, подлежит применению право Российской Федерации. Принимаю Не принимаю


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

Руководство по 301-му редиректу состоит из двух частей:
- Статья с примерами кода и само руководство (если вам сразу нужен пример кода, то лучше сразу пролистать инфографику)
- Наглядная детальная инфографика

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

Что такое редирект?

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

301 Moved Permanently

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

302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)

302 редирект – временный редирект. Данный редирект передает 0% от ссылочного веса и, в большинстве случаев, не должен использоваться. На данный момент интернет работает по протоколу HTTP, который и определяет, как обрабатывать URL-адреса. В двух версиях этого протокола этот ответ сервера имеет разный статус ответа:

HTTP 1.0: 302 ответ сервера это «Moved Temporarily » – текущий документ временно перемещен на другой URL.

HTTP 1.1: произошло изменение ответа сервера на «Found» – текущий документ найден.

307 Moved Temporarily (HTTP 1.1 Only)

307 редирект в протоколе HTTP 1.1 стал приемником 302 редиректа. В то время, как основные поисковые боты, начнут рассматривать его как аналог 302, для почти всех случаев лучше всего использовать 301. Исключением из этого правила является, когда контент действительно переехал только временно (например, во время технического обслуживания) и поисковые системы уже понимают, что ваш сервер совместим с HTTP 1.1. Но, так как это практически невозможно определить, действительно ли поисковые системы поняли, что ваш сервер совместим с этим новым протоколом, то лучше использовать 302 редирект для контента, который был временно перемещен.

Другие виды редиректов

Существуют также и другие виды редиректов: Meta Refresh или с помощью javascript – которые выполняются на уровне страницы, а не на уровне сервера. Вот как выглядит типичный редирект Meta Refresh:

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

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

Канонизация домена сайта или как склеить домен?

Чтобы склеить домен с www на без www:
RewriteCond %{HTTP_HOST} ^www.site\.com$
RewriteRule ^(.*)$ http://site.com/$1

Для склейки с без www на с www:
RewriteCond %{HTTP_HOST} ^site\.com$

Для того чтобы правильно выбрать на какой из вариантов склеивать, желательно посмотреть:

Как из этих вариантов больше находиться в топе
- для какого из вариантов больше страниц в индексе

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

При проектирование сайта важно определиться с одним форматом использование слеша в конце урла, так как для поисковых систем 2 урла вида:

Http://www.site.com/cat1/

Http://www.site.com/cat1

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

Для того чтобы удалить слэш в конце:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$
RewriteRule ^(.*)(/)$ $1

Для того чтобы добавить слэш в конец адресной строки:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/

Редирект одной страницы на другую страницу:
Redirect 301 /oldpage.html http://www.site.com/newpage.html

Редирект для дублей главной страницы

Этот код гарантирует, что любой адрес домашней страницы, который включает несколько версий прямых ссылок имени страницы, например, default.htm или index.html, будет перенаправлен на каноническую главную страницу, http://www.site.com:
RewriteCond %{THE_REQUEST} ^{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1

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

Если структура каталога у вас отображается в url-ле, то если вы делаете перекаталогизацию у вас соответственно будут изменяться и url. В таком случае необходимо прописать следующий редирект:
RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2

Но, если урл старого каталога начинается сразу после домена: www.site.com/old-catalog/, то необходимо воспользоваться следующим кодом
RewriteRule old-catalog /(.*) / old-catalog /$1

Редирект при смене расширение файлов

Если вы вдруг переехали на другую платформу или CMS и при этом у url-ов изменились только расширение, то в этой случае вам поможет вот такой редирект:
RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Примеры использования для защиты сайта от множественных дублей страниц

Редирект с разных доменов и субдоменов

Если вы купили несколько доменов в разных доменных зонах или разрабатывали новый сайт и повесили его на субдомен, а этот субдомен забыли закрыть от индексации, то необходимо сделать редирект на основной домен:
RewriteRule ^(.*)$ http://www.site.com/$1

Таким, образом все домены типа www.site.ru, www.site.net, test.site.com будут переадресовываться на сайт www.site.com.

Как удалить несколько слешей/тире в урле

Иногда «по случайности» в урле могут появится по несколько слешей, например, www.site.com/catalog////page-1.html. В таких необходимо делать 301 редирект на страницу с одним слешер www.site.com/catalog/page-1.html:
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2

Аналогично, можно склеить в урле несколько дефисов в один: с www.site.com/catalog/page-1.html на www.site.com/catalog/page-1.html:
RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2

Как сделать редирект с любого урла на 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();
}

Как переехать на новый домен? Оптимальная стратегия 301 редиректа

Оптимальной стратегией переезда на новый домен учитывая пожелания 2-ух основных поисковых систем рунета Yandex и Google это:

Постраничный 301 редирект со старого сайта на новый.
- при этом для файла robots.txt редирект не делаем, а прописываем в нем директиву Host на новый домен.

Тогда код для настройки редиректа на старом сайте может иметь следующий вид:
RewriteCond %{REQUEST_FILENAME} robots.txt$
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www\.site\.com
RewriteRule ^(.*)$ http://www.site.com/$1
а файл robots.txt для старого сайта:
User-agent: Yandex
Disallow:
Host: newsite.com

Генерация 301 редиректов

Если вы не очень технически подкованы, то можно воспользоваться сервисами генерации базовых редиректов:

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

Как проверить 301 редирект

После каждого изменение логики работы 301 редиректа необходимо проверять работоспособность сайта:

Вообще ли работает сайт: зайти на главную страницу)

Походить по основным разделам и страницам сайта

Также для более тщательной проверки отработки редиректов можно использовать следующие сервисы:

Как и когда лучше использовать 301 редирект vs Canonical

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

301 - Эй, Поисковики: моя страница уже не здесь и она навсегда переехала на новую страницу. Пожалуйста, удалите старую страницу из индекса и передайте её вес на новую страницу.

Canonical - Эй, Поисковики (так для большинства поисковых систем): у меня есть несколько версий этой страницы (или содержания), пожалуйста, индексируйте только ту версию страницы, на которую стоит canonical. Я буду держать другие страницы доступными для людей, чтобы они могли их видеть, но, Поисковик, не включай их в свой индекс и пожалуйста, передайте вес на мою предпочтительную страницу.

Когда лучше использовать 301 редирект

По умолчанию - это предпочтительный метод

Для страниц: если страница навсегда переехала или была заменена на новый адрес

Для доменов: если сайт переехал на новый домен (продажа сайта, ребрендинг и т.д.)

Для 404 страниц и контентом, который потерял свою актуальность (при условии соответствующего содержания). Например, если удален товар из определенного каталога, то можно сделать редирект на похожий товар, или на url-категории к которой пренадлежал данный товар.

Когда лучше использовать rel= «canonical»?

Когда 301 редиректы не могут быть реализованы, или их внедрение займет слишком много времени

Страницы с несколькими разными url по сути одной страницы (например, сортировки каталога, отслеживания партнерских ссылок, …)

Кросс-доменов, когда оба сайта похожи, но похожий контент нужно оставить на каждом из доменов.

Итого

Ошибки при использовании редиректов

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

Использование не правильного типа редиректов. При выборе типа редиректа необходимо учитывать нюансы каждого из них.

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

Редирект на не релевантные страницы/контент. Редирект всегда желательно проставлять на максимально релевантную страницу: или на похожую страницу, или на ветку каталога/раздела к которому принадлежала данная страница.

Не правильный выбор использования rel=canonical vs 301 редирект. Смотри выше.

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

Редирект robots.txt. Так как, например, нужно прописывать директиву Host для Яндекса при склейке доменов.

Переходим к просмотру инфографики:

Скачать инфографику.

Если вы хотите изменить URL-адрес страницы, отображаемый в результатах поиска, рекомендуется использовать переадресацию 301 (301 Permanent Redirect), выполняемую сервером. Это самый лучший способ обеспечить переход пользователей и поисковых систем на нужную страницу.

Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.

На самом деле существует несколько редиректов. О том как сделать 301 редирект можно посмотреть на инфографике.

В каких случаях использовать редирект 301?

Использовать переадресацию 301 особенно удобно в следующих случаях:

  1. При смене домена. Вы переместили свой сайт в другой домен и хотите, чтобы казалось, будто перехода и вовсе не было.
  2. Для передачи новому домену Page Rank и тИЦ.
  3. Для сохранения поискового трафика.
  4. Пользователи могут получить доступ к сайту, используя несколько различных URL-адресов. Например, попасть на страницу можно несколькими способами: //site.ru/sub , //sub.site.ru или //www.site.ru . Бывает удобно выбрать один из этих URL-адресов в качестве канонического (основного) и использовать переадресацию 301 для перенаправления на него трафика с других URL. Для настройки можно использовать «Инструменты для веб-мастеров».
  5. При объединении двух сайтов требуется, чтобы все ссылки на устаревшие страницы указывали на страницы, действующие в данный момент.
  6. При переносе страницы сайта в новое место.
  7. Для склейки имени сайта с префиксом www и без него.

Статья по теме: Яндекс заменяет тИЦ на ИКС - новый показатель качества сайта

301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке. Как пользователи, зашедшие через браузер, так и поисковые боты будут перенаправляться по новому адресу, при этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL . При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL .

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

301 редирект в.htaccess

При использовании сервера Apache, переадресацию можно просто выполнить с помощью файла.htaccess , однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect , RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini .

Для этого поместите в корне папке вашего сайта файл.htaccess.

Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

Redirect 301 /old-page.html //new-domain.ru/new-page.html

Redirect permanent /old-page.html //new-domain.ru/new-page.html

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

RedirectPermanent /old-url.html //new-site.ru/new-url.html

Редирект с помощью директивы RedirectMatch

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

RedirectMatch /(.*).php$ /$1.aspx

Редирект с помощью директивы RewriteRule модуля mod_rewrite

Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite , а также влючена опция FollowSymLinks . Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

Статья

Лучшие статьи по теме