Как сделать 301 редирект в .htaccess — куча примеров

Как сделать 301 редирект в .htaccess - куча примеров

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

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

301-редирект с домена без WWW на домен с WWW префиксом #

С домена с WWW префиксом на без #

С домена с WWW префиксом на без включая все поддомены (домены 3-го уровня)!

Очень удобно использовать для переадреации сайтов , где используются домены 3го уровня для городов, допустим http://www.spb.site.ru с этим правилом в .htaccess перекинет на http://spb.site.ru , сам юзаю этот способ — очень удобный!

Стандартная переадресация с одной статической страницы на другую #

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

В ряде случаев полезна переадресация через RewriteRule #

301-редирект для страницы с GET параметрами #

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

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

301-редирект со страницы без заданного параметра в корень #

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

301-редирект для конкретного файла, а не целой папки #

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

Как быть с доменами в зоне РФ? #

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

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

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

Настройка переадресации на папки со слешем в конце / #

Настройка переадресации на папки без слеша (убираем слеш в конце) #

301-редирект с домена на папку на другом домене #

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

Редирект всех файлов в папке на заданный файл #

Редирект файлов из заданной папки кроме, определенного файла #

Смена страниц с html расширения на php расширение #

Задание типа индексной страницы (php, html, htm и другие) #

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

Редирект с индексной страницы php на саму папку (корень) #

Для всех индексных страниц на сайте:

Редирект с поддомена на основной домен второго уровня #

Редирект для заданного файла в различных директориях (папках) #

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

Если требуется создать ЧПУ-копию какой-либо динамической страницы, то это можно также реализовать с помощью .htaccess. #

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

301-редирект с HTTPS-версии на HTTP #

 

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

Настройка 403 кода ответа сервера для реф-спама (301-редирект для спама по REFERER) для списка ресурсов #

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

Указание пути к файлу 404 ошибки с помощью .htaccess #

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

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

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

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

Если требуется настроить редирект только для некоторых USER_AGENT’ов, а не для всех пользователей #

 

Если требуется настроить редирект для всех поисковых роботов (представлен список их USER_AGENT’ов) #

 

Несколько простых примеров #

Синтаксис для регулярных выражений #

 

Убираем все GET-параметры после знака вопроса (?) #

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

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

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

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

 

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

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

Информация взята с сайта : http://www.pixelplus.ru/studio/stat/kak-sdelat-301-redirekt/

Комментировать