Общие правила редиректов в .htaccess

Обновлено: 23 декабря, 2021

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

  1. Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.
  2. Избегайте двух, трех и т.д. последовательных редиректов. Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.
  3. Размещать все правила лучше после двух строк:
    Options +FollowSymLinks 
    RewriteEngine On
  4. Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код.
  5. Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте — bertal.ru либо mainspy.ru/otvet_servera
  6. Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.
  7. Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.

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

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

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

^ — спецсимвол начала строки;
$ — спецсимвол конца строки;
! — спецсимвол отрицания;
. — точка, заменяет любой символ, но только один;
() — группировка;
\ — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.
? — символ повторяется 0 или 1 раз.
+ — повторяется от 1 до 65536 раз.
* — повторяется от 0 до 65536 раз.
NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.
Рейтинг автора
Автор статьи
Юрий
SEO-аналитик, программист (PHP, Ajax, Delphi, MySQL).
Написано статей
268
6 оценок, среднее: 5,00 из 56 оценок, среднее: 5,00 из 56 оценок, среднее: 5,00 из 56 оценок, среднее: 5,00 из 56 оценок, среднее: 5,00 из 5 (6 оценок, среднее: 5,00 из 5)
Для того чтобы оценить запись, вы должны быть зарегистрированным пользователем сайта.
Загрузка...
Понравилась статья? Поделиться с друзьями:
Блог Программиста
Добавить комментарий

восемнадцать − одиннадцать =