//

Настройка 301 редиректа: полная инструкция

Настройка 301 редиректа: полная инструкция

обновлено: 22.10.2019
Александр Коваленко, CEO/founder агентства Advermedia.ua, опыт в SEO более 10 лет. Телеграм: @profseoua
45 мин
0
18.10.2019

Вступление:

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

301 редирект имеет особую важность для поискового продвижения и является часто используемым инструментом в арсенале SEO-оптимизатора.

Содержание статьи:

  1. Что такое 301 редирект и где он может пригодится
    1.1. Как работает переадресация
  2. Виды редиректов
  3. Когда нужно использовать  301 и 302/307 редирект
  4. Как настроить 301 редирект
    4.1. C помощью файла .htaccess (для веб-сервера Apache)
    Переадресация с одной статической страницы на другую
    С без WWW на WWW / с WWW на без WWW
    С http на https /с https на http
    Переадресация с одного домена на другой
    Редирект на поддомен
    Постраничный редирект
    Перенаправление с index.php на главную
    Переадресация на главную
    Переадресация на страницу 404 ошибки
    Переадресация со страниц без / на страницу со / и наоборот
    Переадресация на мобильную версию сайта
    Изменение расширения файла c .php на .html
    Массовая переадресация для категории
    Переадресация для URL с параметрами
    4.2. С помощью PHP-условия в файле index.php
    4.3. С помощью функционала CMS
    Настройка переадресации в WordPress
    Настройка переадресации в Битрикс
    Настройка переадресации в OpenCart
    Настройка переадресации в MODX 
    Настройка переадресации в Joomla
    4.4. С помощью функционала платформы
    Настройка переадресации в  WIX
    Настройка переадресации в  UCOZ 
    Настройка переадресации в  Тильда
    4.5.  C помощью файла nginx.conf (для веб-сервера Nginx)
    4.6.  С помощью файла web.config (для веб-сервера IIS)
  5. Как проверить правильно ли настроен редирект
    Вручную
    С помощью онлайн-сервисов
  6. Частые ошибки при настройке 301 редиректа
  7. Методичка по синтаксису и регулярным выражениям
    Вместо заключения

1. Что такое 301 редирект

301 редирект (или код ответа сервера 301) – это автоматическое перенаправление с одного документа (страницы) на другой. Таким образом, если установлен 301 редирект, пользователя автоматически перебросит на страницу, куда направляет такой редирект.

Пример:
Пользователь вводит адрес страницы в строке браузера:
yousite.com/page1.html

Но, вебмастер установил 301 редирект с этой страницы (или донора, от лат. dono – дарю) на страницу (акцептор, от лат. accipio – я принимаю):
yousite.com/page2.html

Таким образом, пользователя автоматически “перебросит” на вторую страницу.

1.1. Как работает переадресация

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

  • Пользователь вводит URL-адрес страницы или переходит по ссылке, 
  • Сервер обрабатывает запрос
  • Получает информацию о редиректе и следует ему
  • Пользователь получает HTTP-код либо другую инструкцию и попадает на страницу указанную в инструкции

Длительность этого процесса занимает доли секунд и, как правило, этот процесс незаметен для пользователя.

2. Виды редиректов

Всего кодов 9, но на практике используются 2-3 основных виды редиректов – 301, 302 и 307:

Редирект

Описание

Код “HTTP 301 (Moved Permanently)” 

Постоянная переадресация – 301 редирект с одной страницы на другую, которое говорит о том, что страница была перенесена на новый URL-адрес. 

Код “302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)”

Временная переадресация с одной страницы на другую (найдено, перемещено временно). Такое перенаправление не передает ссылочный вес страницы.

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

  • HTTP 1.0: “Moved Temporarily” (Временно перемещен) – веб-документ временно перенесен на другой URL-адрес.
  • HTTP 1.1: произошло изменение в ответе сервера на «Найдено» – веб-документ был найден.

Код “307 Moved Temporarily (HTTP 1.1 Only)”

Временная переадресация документа. которая говорит о том, что документ временно доступен по другому URL-адресу. Выполняет аналогичную функцию 302 редиректа.

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

Данные редиректы более редкие в использование:

Редирект

Описание

Код “303 See Other”

Переадресация на страницу, отображение которой происходит через метод GET

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

Код “304 Not Modified”

Код указывает на то, что нет необходимости повторно передавать запрошенный документ. Это неявная переадресация на кэшированный ресурс, которое происходит, когда метод  safe, например GET или HEAD запрос или когда запрос является условным и использует If-None-Match или If-Modified-Since.

Код “305 Use Proxy”

Код указывает на то, что переадресация происходит через Proxy, его адрес передается браузеру

Код “306 Switch Proxy”

*Не используется

Код ответа сервера означал, что запросы должны проходить через переданный прокси

Код “308 Permanent Redirect”

RFC 7238 был создан для определения кода состояния 308 (перманентное перенаправление), который аналогичен 301 (перманентно перемещен), но не позволяет изменять метод запроса с POST на GET.

Но также можно выделить редиректы с помощью: 

  • HTML переадресация – обновление мета-данных (Meta Refresh) 

Один из видов редиректа – HTML переадресация на другую страницу. Для того, чтобы использовать данный мета-тег, необходимо разместить следующий код:

<meta http-equіv="rеfresh" content="1;URL=http://yousite.com" />

Где
Параметр content= отвечает за время веренавления, 1 = 1 секунда. 
Параметр URL = отвечает за указание страницы, на которую мы хотим перенаправить пользователя.

Важно: 
В данном варианте HTML редирект выполняется не на стороне сервера, а на стороне клиента, поэтому 301 код не передается. 

  • Редирект с помощью  JavaScrip

<scrіpt type="tеxt/javascrіpt">
wіndow.lоcation.rеplacе("newsіte.ru");
</scrіpt>

При использование данного метода редиректа, код ответа, заголовок 301 также не передается. Более того, если у пользователя в браузере отключена поддержка JS, редирект не сработает.

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

С помощью приведенного кода выполняется переадресация на поддомен сайта с мобильной версией. Основание – разрешение экрана пользователя до 720 пикселей в ширину. 

<script type="text/javascript">
if (screen.width <= 720) {
window.location = "http://m.domain.com";
}
</script>

 

3. Когда нужно использовать 301 и 302/307 редирект

 

3.1. 301 редирект

Где обязательно необходимо использовать 301 redirect:

  • При переезде на новый домен. Установка редиректа в таком случае обязательна, редиректы устанавливаются постранично;
  • При изменение структуры URL-адресов сайта. К примеру, вы меняете CMS, вследствие чего меняется структура URL-адресов;
  • При настройке главного зеркала. К примеру, ваш сайт доступен как с www, так и без www, необходимо настроить 301 редирект с одного варианта, на другой;
  • При изменение конкретного URL-адреса. К примеру, вам необходимо изменить адрес страницы услуги – необходимо прописать редирект со старого адреса на новый.

3.2. 302 и 307 редирект

307 редирект – это аналог 302 редиректа с некоторым отличием, он сохраняет метод передачи запроса (302 редирект может вести себя по разному с методами, которые отличаются от GET (POST, PUT, DELETE). 

В каких случаях уместно использование 302 редиректа:

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

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

3.3. Отличия 301 и 302 редиректа

Сравним 301 и 302 редирект и разберем ключевые точки, где есть и где нету отличий:

Главное, с чего нужно начать, в чем отличия нету:

  • Передача ссылочного веса: 

Еще в 2016 году Джон Мюллер заявил, что 301 и 302 передают ссылочный вес, а также, что если Google определит, что 302 редирект был настроен по ошибке, он воспримет его как 301 редирект. 

В чем же есть отличия:

Отличие

Для 301 редиректа

Для 302 редиректа

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

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

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

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

Меняет страницу в результатах поиска со старой на новую

Не меняет страницу в результатах поиска, в выдача остается старая страница

В настройке 

RewriteCond %{REQUEST_URI} ^/test/$
RewrіteRule ^.*$ http://yousіte.com/new-test/? [R=301,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yousіte.com [NC]
RewriteRule ^(.*)$ http://domain.com /$1 [R=302,L]

 

4. Как настроить 301 редирект

4.1. C помощью файла .htaccess (для веб-сервера Apache)

Как найти файл .htaccess?

Как правило, файл размещен в корневой директории сайта:
Настройка 301 редиректа: полная инструкция

Чтобы попасть в корневую папку сайта, вы можете использовать несколько способов:

  • Файловый менеджер хостинга;
  • Подключиться через FTP клиент;
  • Использовать SSH доступ.

После нахождений файла достаточно нажать на него правкой кнопкой:
Настройка 301 редиректа: полная инструкция

И выбрать редактиврование.

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

Итак, мы уже нашли файл, открыли его. Теперь мы можем настроить 301 редирект .htaccess. Мы подготовили 14 примеров наиболее частого использования 301 редиректа.

Практические примеры:

– Переадресация с одной статической страницы на другую

Если вам необходимо установить редирект с одной страницы на другую – используйте данный код: 

Пример простого 301 редиректа:

Redirect 301 /page1 http://www.yousite.com/page2
*страницу, на которую идет переадресация должна быть указана через полный URL адрес.

Или:

RewriteRule ^page1 /page2/$1 [R=301,L]

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

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

– С без WWW на WWW / с WWW на без WWW

с WWW на без WWW:
Вариант 1

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yousite\.com$ [NC] RewriteRule ^(.*)$ http://yousite.com/$1 [R=301,L]

Вариант 2

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Вариант 3

RewriteEngine on
RewriteCond %{HTTP_HOST} !^yousite\.com$ [NC] RewriteRule ^(.*)$ http://yousite.com/$1 [R=301,L]

Для HTTPS-версии:

RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://yousite.com/$1 [R=301,L]

без WWW на WWW:

Вариант 1

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yousite.com$ [NC] RewriteRule ^(.*)$ http://www.yousite.com/$1 [R=301,L]

Вариант 2

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

– С http на https /с https на http

с http на https:

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

с https на http:

Redirect HTTPS to HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

– Редирект с одного домена на другой

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

RewriteCond %{HTTP_HOST} ^old-yousite\.com$ [NC] RewriteRule ^(.*)$ http://www.new-yousite.com/$1 [R=301,L]

– Редирект на поддомен

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.+).yousite.com$
RewriteRule (.*) http://yousite.com/$1?region=%1 [L,R=301,QSA]

– Постраничный редирект

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

Постраничное перенаправление настривается также, как и редиректы с WWW на без WWW.

Вариант 1.

Используйте готовый код:

RewriteCond %{HTTP_HOST} ^oldyousite\.com
RewriteRule ^(.*)$ http://newyousite.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.oldyousite\.com
RewriteRule ^(.*)$ http://newyousite.ru/$1 [R=301,L]

Вариант 2.

Сгенерируйте код для вставки через этот сервис:
Настройка 301 редиректа: полная инструкция

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

– Перенаправление со страницы /index.php на главную страницу

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://yousite.com/ [R=301,L]

– Редирект на главную

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

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://yousite.com/ [L,R=301]

– Редирект на страницу 404 ошибки

Если необходимо установить редирект с 404 ошибки на конкретную предустановленную страницу, настройке данный код: 

ErrorDocument 404 /404.html

Полезная информация по теме: Ошибка 404: что означает, как найти и настроить

– Редирект со страниц без / на страницу со / и наоборот

Со страниц без / на страницы с /:

Обратите особое внимание на этот редирект для избежания появления дубликатов страниц (поисковая система воспринимает 1 страницу со слешем в конце URL-адреса, и без слеша – как 2 отдельные страницы), чтобы этого избежать, используйте редирект:

Пример:

  • yousite.com/page1/
  • yousite.com/page1

Удаление слеша в конце URL-a:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

Добавление слеша в конце URL-a:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

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

– Редирект на мобильную версию сайта

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

RewriteEngine On
RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC] RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ http://m.yousite.com%{REQUEST_URI} [R,L]

– Изменение расширения файла c .php на .html

Часто, такая необходимость возникает при изменение системы управления контентом (CMS), в таком случае, используйте следующий редирект:

RedirectMatch 301 (.*)\.php$ http://www.yousite.com$1.html

Или наоборот:

RedirectMatch 301 (.*)\.html$ http://www.yousite.com$1.php

Если же вам нужно убрать, а не заменить расширение, к примеру .html из url (для удаления .php нужно заменить $1.html на $1.php):

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

– Массовый редирект для категории

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

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

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

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

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

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

RewriteCond %{QUERY_STRING} sort=size
RewriteRule .* http://yousite.com/page.php? [R=301,L]

4.2. С помощью PHP-условия в файле index.php

Если ваш сайт разработан на PHP (как правило, это самописные сайты, которые состоят из набора .php страниц ) – вам нужно воспользоваться этой инструкцией.

Для переадресации со старого URL-адреса на новый, вам необходимо добавить код с редиректом в самый верх файла нужной страницы. PHP переадресация на страницу выполняется с помощью кода:

header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/test.html");
exit();

Если же у вас достаточно много редиректов, которые необходимо проставить, оптимальнее создать отдельный файл, который будет содержать в себе все правила, его можно назвать php-redirect.php (файл, который будет содержать все PHP редиректы сайта):

if($_SERVER['REQUEST_URI'] == '/old-url-1/'){
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: https://yousite.com/new-url-1/");
    exit();
}
if($_SERVER['REQUEST_URI'] == '/old-url-2/'){
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: https://yousite.com/new-url-2/");
    exit();
}

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

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

$ref=$_SERVER["QUERY_STRING"];
if ($ref!="") $ref="?".$ref;
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/".$ref);
exit();

Настраиваем мобильный редирект через PHP

<?
$detect = new Mobile_Detect;
if ( $detect->isMobile() ) {// код}
if ( $detect->isTablet() ) {// код}
if ( $detect->isiOS() ) {// код}
if ( $detect->isAndroidOS() ) {// код}
?>

4.3. С помощью функционала CMS

У каждой системы управления есть свои небольшие особенности настройки редиректов. Давайте разберемся как сделать переадресацию на разных CMS:

– Настройка 301 редиректа в WordPress

Вариант 1 (рекомендуемый). Используйте плагин Redirection
Настройка 301 редиректа: полная инструкция
Настройка 301 редиректа: полная инструкция

Вариант 2. Управление редиректами можно осуществить вручную с помощью файла .htaccess

– Настройка 301 редиректа в Битрикс

Управление редиректами в системе управления контентом Битрикс выполняется с помощью файла .htaccess

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

– Настройка 301 редиректа в OpenCart

Управление редиректами в системе управления контентом OpenCart выполняется с помощью файла .htaccess

Тем не менее, важно учитывать, что 301 редирект через .htaccess в ОпенКарт имеет другую конструкцию:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]

– Настройка 301 редиректа в для MODX

Управление редиректами в системе управления контентом ModX выполняется с помощью файла .htaccess

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

– Настройка 301 редиректа в Joomla

Вы можете настроить 301 редирект в CMS Joomla с помощью специальных плагинов: ReDJ, aiRedirectWww, Simple Redirect или JRedirects.

Также управлять редиректами можно через файл .htaccess или другие системные файлы (в зависимости от вида сервера, на котором размещен ваш сайт).

4.4. С помощью функционала платформы

– Настройка 301 редиректа в WIX

Детальная инструкция по настройке редиректов на платформе WIX тут

Для настройки редиректа вам необходимо перейти в Настройки – SEO – Настроить переадресацию.
Настройка 301 редиректа: полная инструкция

– Настройка 301 редиректа в UCOZ 

Детальная инструкция по настройке редиректов на платформе Юкоз тут

В настройках платформы есть функционал настройки 301 редиректов внутри сайта (но, для бесплатной версии сайта – это 5 редиректов максимум). 

Как поставить переадресацию на другой сайт?

Редирект страницы на страницу другого сайта можно установить только через HTML перенаправление:

Зайдите в панель управления – Дизайн – Управление дизайном. Выбрать – Статьи – Страница материалов и комментариев

<?іf($ENTRY_URI$=='
  http://my-old-site.ucoz.org/publ/domashnie_zhivotnye/12-1-0-5
   ')?>
   <metа http-eqіv='Rеfresh' content='0; URI=http://my-new-site.ru/blog/domashnie_zhivotnye.html'>
<?endif?>

– Настройка 301 редиректа в Тильда

Воспользуйтесь встроенным функционалом системы. Зайдите в «Настройки сайта» → «SEO» → «редиректы страниц (code 301)» → редактировать.
Настройка 301 редиректа: полная инструкция

4.5.  C помощью файла nginx.conf (для веб-сервера Nginx)

Если у вашего сайта веб-сервер Nginx, вам необходимо настривать 301 редиректы через файл nginx.conf. 

Необходимо изменить начало блока http в файле nginx.conf.

Пример настройки редиректа с WWW на без WWW

server {
server_name ~^(?=www\.);
if ( $host ~* "http://www.(.*)«) {
set $unwww $1;
}
rewrite ^ $scheme://$unwww$request_uri permanent;
}

Пример настройки редиректа без WWW домен c WWW

server {
server_name ~^(?!www\.);
rewrite ^ http://www.$host$request_uri permanent;
}

5. Как проверить правильно ли настроен редирект

– Вручную 

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

Если редирект настроен корректно, URL-адрес измениться на новый адрес автоматически

Если этого не произойдет – была допущена ошибка.

Обратите внимание:
Перед тем, как проверять редирект – необходимо почистить кэш браузера.

– С помощью сервиса

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

 

6. Частые ошибки при настройке 301 редиректа

 

Наиболее частые ошибки при настройке переадресации:

  • Редирект файла robots.txt со старого на новый домен; 
  • Редирект на страницу, которая не отдает 200 ответ (часто происходит по причине опечатки, неверно заданного URL-адреса);
  • Неправильный выбор. Использование rel= «canonical» вместо 301 редиректа и наоборот;
  • Редирект на нерелевантный контент;
  • Многошаговый редирект. Применение 2-3 шагов редиректа не рекомендуется – увеличивает нагрузку на сервер, также увеличивает шансы потерять ссылочный вес.

7. Методичка по синтаксису и регулярным выражениям

Для этого нужно знать регулярные выражения, которые используются в файле .htaccess

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

Выражение

Обозначение

^

— начало строки;

$

— конец строки;

*

— предшествующий повторяется от 0 до 65536 раз;

+

— предшествующий повторяется от 1 до 65536 раз;

.

— заменяет любой 1 символ;

— следующий символ после слеша – считается обычным, а не спецсимволом;

()

— переменная группировки;

[]

— диапазон значений;

!

— спец символ отрицания;

?

— символ повторяется 0 или 1 раз;

#

— комментарий начинается с #.

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

Можно выделить 3 основных флага:

Флаги

Обозначение

[NC]

— флаг NoCase, отключающий проверку регистра символов при срабатывании правила.;

[R]

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

[L]

— флаг Last, останавливает формирования URL-адреса и строка считается окончательной

[C]

— флаг Chain — объединяет несколько правил в цепь. Если первое правило цепи не срабатывает, то вся цепь игнорируется.

[F]

— флаг Forbidden — возвращает ошибку 403 Forbidden (запрещено).

[G]

— флаг Gone — возвращает ошибку 410 Gone (удалён).

[N]

— флаг  Next — запускает процесс преобразования с первого по порядку правила.

[NS]

флаг NoSubreq — разрешает срабатывание правила только для настоящих

      запросов, игнорируя подзапросы.

[P]

  флаг Proxy — даёт команду Apache выполнить подзапрос к указанной странице

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

      ничего не узнает об этом подзапросе. Если модуль mod_proxy отсутствует,

      то произойдет ошибка.

[PT]

флаг PassThrough — останавливает процесс преобразования и передает

      полученную новую ссылку дальше по цепочке.

[QSA]

флаг Qsappend — добавляет исходные параметры запроса (Query String)

      к замене. Если замена не включает в себя новые параметры запроса,

      то исходные параметры запроса добавляются автоматически. Если же

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

[S]

флаг Skip — пропускает следующее правило, если текущее правило сработало.

      Можно указать количество последующих игнорируемых правил [S=2].

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

Все нижеприведенные правила необходимо размещать после строк:

Options +FollowSymLinks
RewriteEngine On

Дополнительно: синтаксис для регулярных выражений:

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

Вместо заключения – рекомендации:

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

  • если вы меняете адрес страницы навсегда – используйте 301 редирект;
  • если страница часто меняется либо вам нужно временное перенаправление – используйте 302 редирект.

Советы по настройке 301 редиректа:

  1. Контент страницы, на которую размещается редирект, должен соответствовать контенту страницы, с которой размещается 301 редирект.
  2. Страница, на которую размещен редирект должна отвечать кодом 200. 
  3. Не размещайте 2-3 редиректа подряд. Это увеличит нагрузку на ваш сервер. 
  4. Если у вас большой список редиректов, разместите в начале файла .htaccess redirect’ы со страницами, которые имеют более высокий уровень вложенности, в конце общие правила, к примеру без www на c www.
  5. После каждого добавления редиректа – проверяйте его работоспособность, всегда! Одна небольшая ошибка – может сделать сайт недоступным.
  6. Ссылочный вес по 301 редиректу передается не сразу, учитывайте это.
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
CEO/founder агентства Advermedia.ua, опыт в SEO более 10 лет. Телеграм: @profseoua