htaccess редирект на нижний регистр
В данной статье рассмотрим простые шаги по установке редиректа (переадресации) с одной страницы сайта на другую (одного URL на другой).
В данной статье рассмотрим простые шаги по установке редиректа (переадресации) с одной страницы сайта на другую (одного URL на другой).
В сети много информации по переадресации страниц. Однако, у неискушенного в строении сайтов или SEO оптимизации читателя может остаться большое количество вопросов по самой процедуре.
Как ее выполнять? С помощью какого ПО? Чего необходимо избежать в ходе процесса?
Поэтому с помощью простых инструкций и иллюстраций автор покажет, как выполнить Redirect 301 без последствий для Вашего ресурса.
Мы рассмотрим следующие моменты:
Место, где прописываем редиректы
Заходить на хостинг будем с помощью бесплатной программы FileZilla.
Обзор программы, возможно, проведем в других материалах, чтобы статья не получилась необъятной (следите за обновлениями на сайте, подписавшись на нашу рассылку). Предполагается, что вы умеете осуществлять вход на хостинг с помощью этой утилиты или какой-либо другой.
Итак, вы вошли в хостинг сайта и открыли папку public_html, если она у вас корневая. Если ее нет, то эту и другую информацию о вашем сервере вы можете запросить у хостинг-провайдера.
Именно он нам и нужен.
Перетяните его в левое окно:
Теперь он скопировался на ваш ПК. Запомните директорию, в которой он лежит.
О мерах предосторожности
Чтобы Ваш ресурс не выпал из строя, перед тем как что-то менять придерживайтесь следующих простых правил:
В появившемся диалоговом окне поставьте пункт «Перезаписать» и нажмите «Ок».
Так вы обезопасите свой сайт.
В блоке №1 стандартные директивы WordPress. IfModule mod_rewrite.c проверяет установку соответствующего модуля на сервере. Если да, то выполняются команды до
Блок №2 отвечает за подключение кэша (сохраняет информацию) в браузере. Эти директивы указывают время хранения изображений, служебных и других файлов. Из комментариев, идущих после знака # можно легко понять на какой срок настроена каждая директива.
Из 3-го пункта необходимо вынести два правила:
Как прописать редирект
В предыдущей главе мы частично затронули процедуру установки редиректа с внутренних страниц сайта.
Почему с внутренних?
Итак, вернемся к процессу.
Например, у вас есть сайт по адресу https://www.site.com
Вам необходимо сделать перенаправление внутренней страницы сайта https://www.site.com/blog/ на страницу https://www.site.com/news/.
Redirect 301 /blog/ https://www.site.com/news/
Страницу с которой осуществляем перенаправление (редирект) не надо прописывать с доменным именем (в нашем случае домен https://www.site.com), а вот страницу, на которую перенаправляем надо.
Редирект следующих страниц прописывайте с новой строки.
Не забывайте про пробелы. Часто по их вине возникают ошибки, из-за которых редирект не работает. Всего должно быть 3 пробела.
Далее, сохраняйте файл и переносите его на хостинг, перезаписав старый.
Другие редиректы
Вторая половина статьи будет интересна более продвинутым пользователям. В ней рассмотрим иные способы редиректа страниц, переход с www версии на версию без www, с http:// на https:// и другие.
Операторы регулярных выражений
Спецсимволы:
Модификаторы:
Больше подробностей об этих значениях читайте здесь.
Рассмотрим действие символов и модификаторов
Редирект с www на без www
RewriteEngine On
%
RewriteRule (.*) http://site.com/$1 [R=301,L]
С помощью RewriteEngine On мы включаем модуль mod_rewrite а
Ниже я выложу наиболее распространенные редиректы. Но перед этим хочется вас предупредить, что не всегда данные правила могут работать. Прежде всего, это зависит от настроек вашего сервера. Не забывайте о мерах предосторожности, изложенных в статье выше.
Если Вам не подошел тот или иной редирект, то смело обращайтесь в службу поддержки вашего хостинга. Хорошие хостинговые компании помогают своим клиентам настроить правильный вариант редиректа, исходя из настроек сервера. И делают это бесплатно.
Редирект с без www на www
RewriteCond %
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
Если ваш сайт перешел с html на php
Удаление или добавление слеша (/) в конце
Редирект каталога
Прописывать редиректы по одному – это утомительно. Если на вашем ресурсе поменялся каталог какого-нибудь раздела(ов), то можно сэкономить время и сделать редирект всех ссылок, относящихся к этому каталогу. Для этого понадобится прописать всего одну строку:
Если каталог находится сразу после домена (site.com/old-catalog/), то строка выглядит еще проще:
RewriteRule old-catalog /(.*) / old-catalog /$1 [R=301,L]
Редирект с поддоменов (субдоменов) на основной
RewriteCond %
RewriteRule ^(.*)$ http://www.site.com/$1[R=301,L]
Удаление нескольких слешей и тире
Продолжаем борьбу с дублями на нашем ресурсе. Если в урлах страницы появятся лишние тире или слеши, то желательно провести их склейку:
Редирект на нижний регистр
Сейчас нередки сайты, где изначально в доменном имени присутствуют заглавные буквы. Например, SiTe.com. В таком виде они могут показываться в поиске. Однако, большинство сайтов по-прежнему используют буквы в нижнем регистре для доменного имени.
Таким сайтам можно сделать редирект на нижний регистр:
Переезд на новый домен
В файле robots.txt на старом сайте:
User-agent: Yandex
Disallow:
Host: newsite.com
Перевод сайта с http:// версии на https://
Сейчас все больше сайтов устанавливают ssl сертификаты, переходя с http:// на https://. Последние не создают проблем при отображении сайта в браузере и дают некоторую степень защиты информации посетителя на вашем ресурсе. Для перехода можно использовать следующие директивы:
Если это правило не подойдет, то обратитесь в вашу хостинг-компанию.
linux-notes.org
Недавно, столкнулся с проблемой, нужно было сделать реврайт для замены прописных букв в строчные. Решил написать статью «Rewrite правила для замены прописных букв в строчные», возможно кому-то еще будет полезным.
Rewrite правила для замены прописных букв в строчные для apache
Использование RewriteMap в самом httpd.conf.
Вот еще один способ:
Приведу еще один способ для того чтобы вы смогли выбрать 1 на свой вкус. Прежде всего, необходимо добавить эту строку в httpd.conf, чтобы определить RewriteMap:
Использование mod_speling в httpd.conf.
Вы можете проверить что позволяет делать mod_speling модуль в апаче. Я лично не использую его, но многие люди любят его. По этому, приведу пример и с ним:
Решаем проблему с WP:
Использование perl.
Можно использовать perl для того чтобы перевести буквы с одного регистра в другой, для этого используйте:
Есть еще несколько способов сделать подобное, но я решил привести наиболее распространенные.
Rewrite правила для замены прописных букв в строчные для nginx
Создаем в конфиге локейшен:
Но на мой взгляд, более правильный вариант:
PS: Нужно перед этим инициализировать переменную uri_lowercase
Или если нужно сделать это с исключениями:
С использованием perl.
Как я описывал для apache, можно сделать подобное и для nginx:
С использованием lua.
Вот и все. Надеюсь было все понятно. Я завершаю свою тему «Rewrite правила для замены прописных букв в строчные».
На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта
Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
1. Перенаправление доменов c синонима сайта на основной домен с кодом 301
Перенаправить запросы на domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]
Перенаправить запросы на www.domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Redirect 301 /page.html http://www.domain.ru/new_page.html
Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteRule ^period/$ http://domain.ru/ [L,R=301]
3. Переопределение страниц ошибок
#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html
Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге
Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:
User-agent: *
Disallow: /errors
/ваш_домен/docs/errors/.htaccess, в котором прописать
4. Постраничное перенаправление запросов на другой домен c кодом 301
Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:
Redirect 301 / http://www.newdomain.ru/
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]
5. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3
Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3
Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:
Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3
Запретить доступ к сайту для всех:
6. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
8. Запрет выдачи листинга каталога
В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).
10. Блокировка переходов со сторонних ресурсов
Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:
RewriteEngine on
RewriteCond %
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]
В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.
12. Перенаправление с HTTP на HTTPS и обратно
Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.
Перенаправить запросы на https://domain.ru
Перенаправить запросы на http://domain.ru
3. Диагностика ошибок
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.
Редирект используют, чтобы перенаправить посетителей с одной страницы на другую. Ситуаций, когда это может понадобиться, очень много. Например, нужно перенести сайт на другой домен, настроить переадресацию с HTTP на HTTPS или отправить человека на новый вариант страницы.
В этой статье рассмотрим подобные ситуации подробнее и расскажем, как сделать редирект в каждой из них. Также вы узнаете, какие бывают редиректы и чем они отличаются друг от друга.
Что внутри
Какие бывают редиректы
Есть два основных вида редиректа: 301 Moved Permanently и 302 Moved Temporarily или 302 Found. Вообще, их больше, но в жизни вам понадобятся только эти.
Для людей разницы между видами редиректа нет, результат будет один и тот же. Но для поисковиков Moved Permanently и Moved Temporarily — разные вещи. В зависимости от того, какой редирект вы используете — 301 или 302 — поисковики по-разному воспримут цель перенаправления. В итоге ссылочный вес страницы, для которой настроили редирект, либо сохранится, либо перейдёт новой странице.
О других редиректах читайте в статье: Коды состояния HTTP.
301 редирект: для постоянного перенаправления
Код 301 Moved Permanently означает, что от старой страницы вы решили отказаться и создали новую, более актуальную. Для ботов поисковых систем 301 редирект будет сигналом больше не индексировать старую страницу и удалить её из результатов поиска. При этом ссылочный вес старой страницы перейдёт на новую.
Редирект 301 используют, когда нужно:
302 редирект: для временного перенаправления
Код 302 Moved Temporarily в HTTP 1.0 или 302 Found в HTTP 1.1 означает, что старая страница ещё понадобится, но посетителям нужно временно показывать другую. Для ботов поисковых систем такой редирект будет сигналом продолжить индексировать старую страницу и оставить её в результатах поиска. При этом ссылочный вес старой страницы сохранится.
Редирект 302 используют, когда нужно:
302 редирект + время = 301 редирект
По словам главного аналитика Google, если долго не убирать 302 редирект, он начнёт передавать ссылочный вес, как это делает 301 редирект. Google решит, что временный редирект настроили случайно и станет воспринимать его как постоянный.
Способы настройки редиректа
Есть четыре способа настроить редирект: в файле с настройками веб-сервера, в файле с настройками PHP, при помощи HTML или JavaScript. Каждый способ подходит для разных целей. Разберём на примерах.
В файле с настройками веб-сервера
Самый популярный способ настройки. Чаще всего его используют, когда нужно сделать 301 редирект для всех страниц сайта сразу: с HTTP на HTTPS, с WWW на без WWW, со ссылки без косой черты на ссылку с косой чертой. Но для отдельных страниц он тоже подходит. В следующем разделе рассмотрим конкретные ситуации с примерами команд.
В файле с настройками PHP
Такой способ настройки обычно используют, когда перед редиректом нужно проверить что-то в базе данных. Например, для редиректа на страницу с ошибкой 404 в дизайне вашего сайта. Человек вводит ссылку с опечаткой, PHP видит, что в базе данных страницы с таким URL нет, после чего перенаправляет человека на страницу ошибки.
Смысла настраивать 301 редирект с HTTP на HTTPS в настройках PHP нет, поскольку работать такой редирект будет медленнее. Это связано с тем, что запрос на открытие страницы сначала обрабатывает веб-сервер, а только потом PHP.
При помощи HTML
Такой способ медленнее предыдущих, потому что перенаправление происходит только после загрузки страницы. Обычно HTML-редирект используют, когда хотят сначала показать человеку одну страницу, а потом автоматически перенаправить на другую.
Например, вы хотите, чтобы после оформления заказа клиент в течение пяти секунд видел страницу с благодарностью за покупку, а потом автоматически попадал на главную страницу или в личный кабинет.
При помощи JavaScript
Этот способ похож по принципу работы на предыдущий, но вместо HTML используют JavaScript. Перенаправление тоже происходит только после загрузки страницы. Правда, если человек отключил в браузере JavaScript, редирект не сработает.
Google не любит HTML и JavaScript редиректы
У них плохая репутация, потому что некоторые люди используют такие редиректы в недобросовестных целях. Например, делают страницы под одни запросы, выводят их на высокие места в поисковой выдаче, а потом настраивают перенаправление на страницу с другим контентом.
В большинстве случаев Google понимает, что на странице стоит отложенный редирект. Он может решить, что владелец сайта пытается обмануть посетителей, и убрать страницу из результатов поиска. Поэтому от подобных редиректов лучше по возможности отказаться.
Примеры редиректов
Перед тем как использовать правила из этого раздела, учтите несколько нюансов:
301 редирект с одной страницы на другую
Такой редирект обычно настраивают, когда хотят сделать постраничный редирект с одного сайта на другой. Или когда на сайте появляется страница с дублирующим контентом. Например, у вас в блоге есть статья, которая хорошо ранжируется по некоторым запросам, но вы выпускаете вместо неё страницу с более красивым дизайном и актуальным контентом.
Старая статья после этого всё равно останется в результатах поиска. Две статьи на одну и ту же тему — не всегда хорошо. С одной стороны вы будете занимать две строчки в выдаче, но в реальности страницы могут забирать друг у друга трафик. В итоге позиции обеих статей могут даже снизиться.
Более выгодным решением будет настроить 301 редирект с одной страницы на другую. Если новая статья оптимизирована не хуже, она заберёт вес у старой, поднимется выше в выдаче и станет получать больше трафика.
301 редирект с одного домена на другой
Если переносите сайт на новый домен, одного 301 редиректа будет недостаточно. Подробный список действий вы найдёте у нас в блоге в статье о том, как сменить домен и не потерять позиции.
Если нужно сделать перенаправление с поддомена на домен, добавьте косую черту перед точкой, которая идёт после поддомена. Например, для редиректа с blog.domen.com на domen.com правило будет таким:
301 редирект на папку другого домена
Такой редирект может понадобиться, если вы решили перенести раздел с поддомена в подпапку. Например, сначала у вас был блог по адресу blog.domen.com, а теперь нужно перенести его на domen.com/blog. Тогда правило для редиректа будет таким:
Другой пример — консолидация двух доменов. Например, у вас есть магазин одежды odezhda.com, вы купили магазин обуви obuv.com и решили перенести его в папку на основном сайте — odezhda.com/obuv. В этом случае правило будет таким:
Если ситуация обратная и вам нужно настроить редирект с подпапки на домен, правило будет таким:
Где ^obuv$ — название подпапки.
301 редирект с HTTP на HTTPS
Когда вы только установили SSL-сертификат, попасть на защищенную версию сайта получится, только если специально дописать перед доменом https:// в адресной строке. Если просто ввести в браузере домен, сайт откроется по протоколу HTTP.
301 редирект с WWW на без WWW
Обычно на одну и ту же страницу на сайте можно зайти по двум адресам: с www и без. Для поисковых систем это будут две разные страницы с одинаковым содержимым.
Чтобы не плодить дубликаты и не снижать уникальность контента, лучше выбрать какой-то один вариант написания ссылок и настроить на него 301 редирект со всех других вариантов.
Если сайт новый, основным может быть любой вариант написания, разницы нет. Если сайт уже набрал позиции, лучше выбрать тот вариант, у которого больше страниц в результатах поиска.
Это можно проверить двумя способами:
Если вам наоборот нужно настроить редирект с без WWW на WWW, используйте такое правило:
301 редирект с без слеша на слэш
Так же как в примере с WWW и без WWW, на одну и ту же страницу обычно можно зайти по ссылке с косой чертой в конце и без неё. Для поисковых систем такие страницы тоже будут дубликатами.
Чтобы случайно не нарваться на санкции от поисковиков, будет правильно привести всё к одному варианту. Вот правило, которое добавит редирект 301 для ссылок без слеша на ссылки со слешем:
301 редирект на URL без расширения
Допустим, у вас есть страница https://domen.com/about.html, и вы бы хотели, чтобы в адресной строке отображалось только https://domen.com/about. В таком случае добавьте такое правило:
301 редирект с верхнего регистра на нижний
Как и в предыдущих примерах, для поисковых ботов ссылки с разным регистром — https://domen.com/home и https://domen.com/Home — это две разные страницы.
Обычно никто не создаёт такие дубликаты, но некоторые движки делают это автоматически. В этом случае лучше выбрать какой-то главный вариант и настроить на него редирект с остальных.
Затем создайте в этой же папке файл rewrite-strtolower.php и добавьте в него строки:
301 редирект для нового формата перманентных ссылок на сайте с WordPress
Если у вас сайт на WordPress и вы поменяли формат ссылок на посты или товары, ссылки старого формата перестанут работать. Если до смены формата люди делились ссылками на ваш сайт в соцсетях, после смены формата при переходе по ним будет возникать ошибка 404.
Когда лучше не использовать редиректы
Редирект лучше не использовать, когда на сайте есть страницы с сильно похожим содержимым или одна и та же страница доступна по нескольким URL. Google будет считать одну из таких страниц канонической, а остальные — её копиями.
Такие страницы часто бывают в интернет-магазинах. Некоторые CMS добавляют в URL страницы параметр, когда посетитель меняет на ней фильтры или сортировку. Например, выбирает размер кроссовок и он добавляется к ссылке в адресной строке браузера. В итоге у страницы помимо основного URL будет ещё несколько с различными дополнительными параметрами.
Другой пример — товар находится сразу в нескольких категориях и URL-адрес меняется в зависимости от того, из какой категории человек на него переходит. Например, есть товар — кроссовки для бега Adidas Runfalcon. Их можно найти в категории «Кроссовки», а также подкатегориях «Кроссовки Adidas» и «Кроссовки для бега».
Некоторые CMS в такой ситуации генерируют три страницы с разными адресами:
Атрибут rel=”canonical” говорит поисковикам: у страницы есть дубликаты, но конкретно эту нужно считать главной. В итоге именно она будет отображаться в результатах поиска, на неё перейдёт ссылочный вес и другие характеристики дубликатов, которые влияют на позицию в выдаче.
Как не стоит настраивать редиректы
Бывает, нужно сделать так, чтобы сайт всегда открывался с WWW и по HTTPS. В этом случае настраивать два правила для редиректа — плохая идея. Это называется «цепочка редиректов». Когда сайт сначала перенаправляется с http://example.com на https://example.com, а потом с https://example.com на https://www.example.com.
Каждый новый редирект — это дополнительная нагрузка на веб-сервер. В итоге страница загружается медленнее. Вместо этого лучше объединить два редиректа в одном правиле. Конкретно для нашего примера оно будет таким:
Чтобы найти у себя на сайте цепочку редиректов, проверьте его при помощи сервиса httpstatus.
Этот раздел для тех, кто хочет попробовать понять содержимое правила или проверить его на ошибки, когда редирект не работает. Вот так выглядит синтаксис правила:
RewriteEngine On
RewriteBase /
RewriteCond % <Переменная>Условие Флаг
RewriteRule Шаблон Значение Флаг
RewriteEngine — команда, которая включает компонент веб-сервера Apache, который отвечает за редиректы. Её достаточно указать один раз перед всеми командами.
RewriteCond — команда, которая определяет условия выполнения редиректа. Например, вы хотите перенаправить все URL в верхнем регистре на URL в нижнем регистре. Тогда условие будет таким: «В запросе есть URL с буквами в верхнем регистре». Если да, происходит редирект. Если нет, веб-сервер пропускает это правило. Причём в одном правиле таких условий может быть неограниченное количество.
RewriteRule — действие, которое веб-сервер должен выполнить при удовлетворении условий в строках RewriteCond.
Переменные
Помогают веб-серверу определить, что конкретно нужно проверить в строке с условием выполнения редиректа. Например, адрес сайта ввели с HTTP или с HTTPS. Или совпадает ли адрес сайта с тем, что указан в условии. Или сделать что-то с частью URL, которая идёт в запросе посетителя после домена.
Переменные всегда пишут в фигурных скобках и ставят перед ними знак процента. Вот самые популярные из них:
%
%
%
%
%
Условия
Здесь обычно используют адрес сайта вместе со специальными символами, а иногда только символы, чтобы указать веб-серверу, в каком случае перенаправить посетителя на другую страницу.
Например, вы хотите настроить редирект домена с WWW на без WWW. Тогда условием будет имя со специальными символами: ^www.domen.com$. Оно означает, что редирект должен выполняться, только когда кто-то вводит домен с WWW.
Также с переменной в качестве условия часто используют уточняющие атрибуты. Вот два самых популярных из них:
-f — проверяет, ведёт ли запрос пользователя к реальному файлу на сервере.
Например, вы хотите сделать так, чтобы в конце URL всегда добавлялся слэш. В этом случае нужно исключить сценарии, когда в запросе человека — путь к конкретному файлу, например, domen.com/index.php. Иначе к index.php тоже добавится слэш и тогда страница не откроется, потому что это будет уже не ссылка на файл.
Чтобы таких ситуаций избежать, к переменной %
-d — проверяет, ведёт ли запрос пользователя к реальной папке на сервере.
Здесь та же логика, что и в случае с предыдущим атрибутом, но вместо файла сервер будет искать папку. Например, вы хотите наоборот сделать так, чтобы в конце URL не было слэша. В этом случае вам понадобится исключить сценарии, когда в запросе человека — путь к папке. Иначе слэш удалится и страница не откроется, потому что будет уже не папкой, а файлом без расширения.
Символы
2 — любая цифра от 0 до 9.
[A-Z] — любая буква от A до Z в верхнем регистре.
[a-z] — любая буква от A до Z в нижнем регистре.
[a-Z] — любая буква от A до Z в любом регистре.
[A-Z] <3,6>— любая строка, которая заканчивается на последовательность от 3 до 6 букв в верхнем регистре и диапазоне от A до Z.
2 <3,6>— любая строка, которая заканчивается на последовательность от 3 до 6 цифр в диапазоне от 0 до 9.
. — любой символ, кроме символа конца строки.
? — повтор предыдущего символа 0 или 1 раз.
+ — повтор предыдущего символа от 1 до 65536 разов.
* — повтор предыдущего символа от 0 до 65536 разов. Например, выражению dome*n будут соответствовать значения domen, domeen, domeeeeeeeeen.
\ — экранирующий слэш. Следующий символ после него будет считаться обычным, а не спецсимволом. Иногда без такого слэша правило не будет работать. Например, когда в тексте есть точка, потому что сама по себе точка означает «любой символ».
^(.*)$ — сочетание спецсимволов, которое выбирает URL из условия RewriteCond, чтобы применить к нему действие из RewriteRule.
Флаги
Это дополнительные опции. Всегда перечисляются в квадратных скобках. Если флагов в одной строке несколько, их перечисляют через запятую, например, [L, R=301]. Вот небольшой список популярных флагов:
[R=301] — редирект вместе с его кодом. Если специально не прописать число, оставить только букву R, сработает 302 редирект. Так что для постоянного редиректа прописывайте вручную код 301.
[L] — останавливает процесс преобразования, и текущая ссылка считается окончательной. Обычно этот флаг используют в конце каждой команды.
[NC] — отключает проверку регистра символов при срабатывании правила.
[OR] — указывает на альтернативное условие. Если в правиле две строки RewriteCond, они суммируются. То есть редирект произойдёт только при удовлетворении условий в обеих строках. Если строки с условиями взаимоисключающие, используйте этот флаг. Тогда правило сработает при выполнении хотя бы одного из условий.