301 редирект в файле .htaccess. Примеры

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

Правила приведены для сервера Apache. В правилах:

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

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

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

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

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

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

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

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

Скажем, адрес страницы имеет вид:

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

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это

), можно использовать следующий код:

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

Если требуется настроить переадресацию только для адреса

, но при этом чтобы страница

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

в правиле.

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

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

преобразуется в

.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Код позволяет поставить 301-редирект со всех папок вида

на один файл в корне

. Бывает полезен при переделке сайта и изменении ссылок.

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

Код позволяет создать копию страницы с относительным адресом

по адресу

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

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

! Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.
! Для сайтов, на которых используется не сервер Apache, аналогичные 301 редиректы легко настраиваются с помощью PHP:
! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.
  • Если требуется настроить редирект только для некоторых USER_AGENT’ов, а не для всех пользователей

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

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

Переадресация с

на

Переадресация с

на

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

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

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

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

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

Строчка

— условие выполнения правила

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

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

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

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

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

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

UPD:

  • Переадресация на HTTPS

обратно:

Оцените статью:
ужасноплохонормальнохорошоотлично (оценок: 3, среднее: 5,00 из 5)
Загрузка...

Отправить ответ

Оставьте первый комментарий!

Подписаться
Войти с помощью: