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

Содержание
  1. Как сделать 301-редирект в файле .htaccess? Примеры и правила настройки
  2. Памятка по используемым символам и обозначениям
  3. Редирект через .htaccess
  4. В каких случаях подойдет .htaccess-редирект
  5. Для чего нужен 301-й редирект
  6. Как сделать редирект через .htaccess
  7. 301 редиректы с примерами
  8. Для чего нужен 301 редирект?
  9. Настройка 301 редиректов в файле .htaccess
  10. 301 редирект с одной страницы на другую
  11. Склейка основного зеркала сайта при добавлении www
  12. Склейка основного зеркала сайта при удалении www
  13. Склейка верхнего регистра с нижним
  14. 301 редирект со страниц со слешем на страницы без слеша (весь сайт)
  15. 301 редирект со страниц без слеша на страницы со слешем (весь сайт)
  16. 301 редирект с http на https для всего сайта
  17. 301 редирект с https на http для всего сайта
  18. Массовая склейка. 301 редирект для index.php, index.html или index.htm
  19. 301 редирект с домена на домен
  20. 301 редирект только адреса site.com/index.php (без GET-параметров) на основное зеркало site.com
  21. 301 редирект для конкретного файла, а не всей папки
  22. Редирект со всех файлов домена, кроме папки администратора bitrix
  23. 301 редирект с поддомена на основной домен
  24. 301 редирект каждой страницы одного домена на такой же адрес другого URL
  25. 301 редирект всех страниц одного домена на главную страницу другого домена
  26. 301 редиректы в зависимости от GET-параметра: примеры
  27. Пример №1
  28. Пример №2
  29. Пример №3
  30. Пример №4
  31. Пример №5
  32. Пример №6
  33. 301 редиректы кириллическими URL-адресами
  34. Сервисы для проверки редиректов

Как сделать 301-редирект в файле .htaccess? Примеры и правила настройки

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

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

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

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

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

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]

Читайте также:  Не работает сцепление зил 4331

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]

RewriteCond % ref-spam-site.ru [NC,OR]
RewriteCond % another-ref-spam.ru [NC]
RewriteRule .* — [F]

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

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

ErrorDocument 404 /404-for-me.php

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

! Для сайтов, на которых используется не сервер 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 — заменяет любой символ, но не цифру.
5 — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

RewriteRule (.*) $1? [R=301,L]
Располагать после: RewriteBase /

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

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

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

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

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

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

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

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

Источник

Редирект через .htaccess

Редирект можно настроить разными способами: в панели управления хостингом, через код HTML, через PHP, с помощью web.config, через .htaccess, а также другими способами. Рассмотрим, в чём особенность редиректа через .htaccess и как настроить 301-й .htaccess-редирект с одной страницы на другую, а также Bitrix redirect.

Если вы ещё не знаете, зачем нужно перенаправление страниц сайта, читайте нашу статью Что такое редирект.

В каких случаях подойдет .htaccess-редирект

Чтобы понять, для каких целей лучше подходит .htaccess-редирект, разберёмся, что такое .htaccess.

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

Файл .htaccess позволяет вариативно настроить сайт. Действие команд из .htaccess распространяется на папки и подкаталоги, расположенные в одной директории с этим файлом. Если для какой-либо вложенной директории нужны иные инструкции, в ней также можно создать .htaccess. Если .htaccess расположен в корневой директории сервера, его действие распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess.

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

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

Помимо разных способов настройки переадресации, существуют разные виды редиректов. Каждый из них имеет своё кодовое название. Основные виды:

  • 300 — сообщает, что по искомому запросу можно перейти не на одну, а на несколько альтернативных страниц;
  • 301 — постоянный;
  • 302 — временный;
  • 303 — на схожую по тематике страницу;
  • 305 — отсылающий к подключению через прокси-сервер.

Также существуют 304-й, 306-й и 307-й редиректы. Однако сейчас эти виды практически никто не использует. Один из самых популярных видов — это 301-й.

301-й редирект (Moved Permanently) — это постоянный редирект. Используется для перемещения страницы на новый URL-адрес насовсем. Когда поисковые системы встречают страницу с редиректом 301, они «понимают», что теперь необходимо индексировать новую страницу, а старую можно полностью исключить из индексации. Если настроить переадресацию 301 некорректно, на странице будет отображаться ошибка 404. Индексация страниц с ошибками приводит к снижению SEO-показателей всего веб-ресурса.

Как сделать редирект через .htaccess

Чтобы сделать перенаправление 301 через .htaccess, перейдите в каталог сайта и откройте .htaccess. Если файла ещё не существует, создайте его. После этого добавьте в файл строки кода из подходящей инструкции ниже.

1С-Битрикс — популярная CMS в которой время от времени необходимо настраивать перенаправление.

  • Если вы хотите переадресовать домен с WWW на без WWW, укажите:

Где www.site.ru — домен, с которого происходит редирект, а site.ru — домен, на который происходит редирект.

  • Если вам нужно сделать редирект Bitrix с домена без WWW на WWW, введите комбинацию:

Где www. — домен, с которого происходит редирект, а www. — домен, на который происходит редирект.

  • Если вы хотите настроить в Битрикс редирект на другую страницу с http:// на https://, пропишите:

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

  • old-site.ru — домен, с которого происходит редирект;
  • new-site.ru — домен, на который происходит редирект.

Добавьте в .htaccess следующие строки:

Где site.ru — имя вашего домена.

Добавьте в .htaccess следующие строки:

Где site.ru — имя вашего домена.

Читайте также:  Ниссан примера не работает скорость печки

Добавьте в .htaccess следующие строки:

Где site.ru — имя вашего домена.

Добавьте в .htaccess следующие строки:

Где site.ru — имя вашего домена.

Добавьте в .htaccess код из нужного вам примера ниже:

  • Для всех страниц с http:// на https://

Для всех страниц с http:// на https://, в том числе и с http://www на https://

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

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

Источник

301 редиректы с примерами

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

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

301 редирект — эффективный способ сохранить трафик, позиции, ссылочный вес страниц сайта при:

  1. удалении дубликатов страниц при изменении структуры сайта или когда страница становится неактуальной;
  2. переезде сайта, склейке страниц, находящихся на разных доменах;
  3. склейке основного зеркала сайта (www, https, index.php/index.html и т. д.).

Настройка 301 редиректов в файле .htaccess

Правило: все 301 редиректы в файле .htaccess лучше размещать после этих записей:

Options +FollowSymLinks
RewriteEngine On

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

Вариант №1

Вариант №2 с помощью регулярного выражения:

Склейка основного зеркала сайта при добавлении www

Склейка основного зеркала сайта при удалении www

Склейка верхнего регистра с нижним

301 редирект со страниц со слешем на страницы без слеша (весь сайт)

301 редирект со страниц без слеша на страницы со слешем (весь сайт)

301 редирект с http на https для всего сайта

Вариант №1

Вариант №2

Вариант №3

Вариант №4

301 редирект с https на http для всего сайта

Вариант №1

Вариант №2

Массовая склейка. 301 редирект для index.php, index.html или index.htm

301 редирект с домена на домен

301 редирект только адреса site.com/index.php (без GET-параметров) на основное зеркало site.com

301 редирект для конкретного файла, а не всей папки

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

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

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

301 редирект с поддомена на основной домен

301 редирект каждой страницы одного домена на такой же адрес другого URL

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

301 редиректы в зависимости от GET-параметра: примеры

Пример №1

site.com/page.html?ref=text → site.com/page.html

Пример №2

site.com/page?file=text&doc=next → site.com/page?doc=next

Пример №3

site.com/component/content/?information=file → на главную страницу site.com

RewriteCond % ^information=file $ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Пример №4

С site.com/index.php?idc=4&marea=6 → на главную страницу site.com

Пример №5

С site.com/index.php?route=feed/latest_products_rss&currency=GRN → на главную страницу site.com

Пример №6

С site.com/information/information?information_id=64 → на главную страницу site.com

RewriteCond % information_id=64$
RewriteRule ^information/information$ /? [L,R=301]

301 редиректы кириллическими URL-адресами

1. Преобразование кириллических символов в Punycode. Пример сервиса, который может решить эту задачу: https://hb.by/punycode-converter.aspx.

2. Если не работает через Punycode, то можно сделать регулярным выражением, например:

RewriteRule ^услуги/оценка-недвижимости/оценка-квартиры/$ https://site.com/ocenka-kvartiri [R=301,L]

Надо добавлять в начало .htaccess и сохранять файл в кодировке UTF-8 без BOM.

3. Еще один вариант — поместить кириллические URL-адреса в кавычки:

Сервисы для проверки редиректов

Одна из главных ошибок —проверка настроенных редиректов в браузере, когда может подтягиваться кэш, из-за которого изменения не вступают в силу. Лучше использовать специальные сервисы, их довольно много. Введите в поисковик запрос “проверка редиректов онлайн” и перейдите на первые сайты, например:

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

Если у вас возникли проблемы с редиректами, внимательно прочитайте статью еще раз 🙂 Или оставляйте комментарий, а мы постараемся помочь вам в этом.

Источник

Оцените статью