Описание редиректа в .htaccess

Настройка .htaccess. Полное руководство

Сегодня я хочу рассказать о htaccess, файле, который позволяет настраивать веб-сервер Apache. Директивы, которые прописываются в этом файле напрямую влияют на выдачу, которую формирует веб-сервер.

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

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

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

Обратите внимание

Для начала — пару слов, что такое htaccess? Процитирую официальный сайт веб-сервера Apache:

То есть, мы можем управлять поведением сервера в каждой, отдельно взятой папке, что очень удобно.

Директивы htaccess. Перенаправление

Блокируем хотлинки с других сайтов

Есть нехорошие товарищи, которые могут использовать картинки с вашего ресурса для использования в своих проектах.

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

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

RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+.)?ваш-урл.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ #Замените путь к картинке RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/noHL.jpg [L]

Перенаправим RSS фиды WordPress на Feedburner

Я не думаю, что кто-то пользуется чем-то другим, отличным от Feedburner. Удобно для пользователя, удобно для владельца блога, статистика, опять же. Если вы еще не используете — крайне рекомендую. Код ниже перенаправит все ваши RSS потоки на ваш аккаунт, не забывайте только вставить нужный адрес.

RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/

В этом примере идет перенаправление двух потоков: основного RSS и обновление комментариев, если посетитель подписан на обновления.

Изменим страницы ошибок

С хостингом и сайтом случается всякое, поэтому заранее нужно быть готовым к проблемам и сделать свои страницы ошибок. А пользователи в случае проблем будут перенаправлены на соответствующую страницу. На этих страницах можно дать краткую информацию для пользователя, почему такое случилось. Контакты свои оставить, в крайнем случае.

ErrorDocument 400 /errors/badrequest.html ErrorDocument 401 /errors/authreqd.html ErrorDocument 403 /errors/forbid.html ErrorDocument 404 /errors/404.html ErrorDocument 500 /errors/serverr.html #Замените /errors/*.html на путь к вашим страницам ошибок

В этом примере идет перенаправление в случае основных ошибок. 404 я тоже добавил, хотя CMS обычно отрабатывают такие моменты, но бывали случаи.

301 и 302 редирект или перенаправление

301 редирект или, так называемое постоянное перенаправление — говорит о том, что страница поменяла адрес или URL и перенаправляет на новую страницу.

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

При 301 редиректе старая страница не индексируется, а вместо нее «подставляется» новая.

RewriteEngine on Redirect 301 /old-page http://ваш-урл.ру/new-page

Собственно, похожий пример внимательный читатель увидит выше, в случае перенаправления RSS. Да, технология та же.
Бывает так, что сайт переезжает на новый домен, нужно сохранить структуру ссылок, а их могут быть сотни и тысячи, на каждую установить перенаправление нереально. Код ниже поможет разобраться с такой ситуацией:

Источник: http://gering111.com/10-nastroek-htaccess/

Файл .htaccess: правильное использование, примеры и рекомендации

Файл .htaccess (англ. hypertext access) используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта.

Как правило, файл .htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой .

htaccess, то он будет действовать только на свой каталог и подкаталоги.

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

Где находиться файл .htaccess?

Обычно он располагается в коневом каталоге сайта. Иногда, в различных CMS может находится файл htaccess.txt, который никак не воспринимается сервером и ни на что не влияет. Чтобы он начал работать нужно его переименовать в .htaccess. Если это не получится сделать на вашем компьютере, то зайдите на свой сервер через FTP-клиент, и переименуйте файл прямо сервере.

Редактировать файл на компьютере можно с помощью любого текстового редактора, но чтобы избежать возможных проблем с кодировкой мы рекомендуем использовать для этого Notepad++.

Как проверить работает ли .htaccess?

Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то .htaccess в данный момент не работает.

Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа .htaccess на сервере поддерживается и включена в данный момент.

Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.

Далее мы поговорим о всем полезном, что можно сделать с помощью данного файла.

Правильный 301 редирект через файл .htaccess

Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать

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

Для этого в файл .htaccess вносим следующие строки:

301 Редирект с www-сайта на сайт без www

Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в СЕО

Обратный редирект с домена без www на домен с www

Перенаправление с http://site.com на http://www.site.com (не советуем использовать)

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

Как добавить .html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:

Как убрать .html в конце URL?

Обратный редирект с site.com/page.html на site.com/page

Как убрать слэш в конце URL?

Например было site.com/page/, стало site.com/page

301 Редирект с одного раздела на другой?

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

301 Редирект при переезде со старого домена на новый

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

Правильное изменение страниц ошибок через .htaccess

Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье).

Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит непонятный ему текст (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется.

Чтобы вместо стандартной страницы ошибки (непонятно для пользователя) показать ему вашу отдельную страницу, на которой будет например, сообщение о том, что сайт временно не работает, но позже восстановит свою работу и на него обязательно стоит вернуться (сайт КиноПоиск при перегрузки серверов выдает сообщение «Матрица перезагружается…» и соответствующую картинку).

Важно

Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы.

Думающие вебмастеры, создают свою страницу вместо непонятной стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 404-страницы можно увидеть здесь. Чтобы показывать пользователям свою страницу ошибки вместо стандартной, нужно создать отдельную страницу (например http://yoursite.com/404.html) и добавить соответствующий код в файл .htaccess Вот примеры кода, который нужно добавить:

Если вы хотите подставить другую страницу вместо ошибки 403, то нужно указывать еще текстовое сообщение, которое будет показано, например:

Настройки безопасности сайта через файл .htaccess

Файл .htaccess дает большие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

Защита сайта от скриптовых инъекций

Как защитить сайт от кражи картинок

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

yoursite.com — адрес вашего сайта
http://yoursite.com/images/stop_stealing.gif — путь к картинке, которую вы сами должны создать. На ней обычно пишут «не крадите картинки с чужих сайтов» или что-то подобное.

Как заблокировать доступ к сайту для пользователя по IP?

Применяется против спамеров и прочих неадекватов, изредка для предотвращения хакерских атак.

Как заблокировать доступ к сайту для всех IP кроме проверенных?

Чтобы заблокировать доступ для всех, кроме конкретных IP-адресов, добавляем такой код:

Как запретить просмотр содержимого конкретной папки

Запрет доступа к конкретному файлу

Запрет доступа ко всем файлам с конкретным расширением

Например чтобы запретить доступ ко всем файлам .txt пишем так:

Блокируем ненужных User Agent-ов

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

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

Информацию о большинстве актуальных на сегодня «Юзер Агентах» можно найти здесь.

Изменение кодировки сайта через .htaccess

Бывает такое, что один пользователь заходит к вам на сайт и видит его нормальным, а другой видит абракадбру вместо букв. Это происходит из-за кодировки сайта. Чтобы браузер пользователя правильно ее распознал, сайт делается в одной из популярных кодировок:

UTF-8 — универсальная двухбайтовая кодировкаWindows-1251 — Кириллица (Windows)KOI8-r — Кириллица (КОИ8-Р)cp866 — Кириллица (DOS)Windows-1250 — Центральная Европа (Windows)

Читайте также:  Обменник megachange.is

Windows-1252 — Западная Европа (Windows)

Также кодировку нужно указывать в мета-теге каждой страницы сайта, это сообщает браузеру в какой кодировке сделан сайт.

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

Если работают оба варианта (и мета-тег, и файл .htaccess), то очень важно, чтобы кодировка в них совпадала.

Также есть возможность, чтобы сервер автоматически перекодировал все файлы, которые на него загружаются:

Чтобы выключить перекодировку сервера нужно вписать:

Оптимизация работы сайта через .htaccess

Ускорение работы сайта через Gzip

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

ему придется выполнять операцию сжатия налету. Чтобы включить Gzip-сжатие в файл .

htaccess нужно добавить следующие строки (попробуйте поочередно добавить 3 варианта кода, проверяя скорость здесь, и оставьте тот вариант, который дает наибольшее ускорение):

или

или

Как улучшить кэширование сайта на сервере?

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

Таким образом для конкретно взятого пользователя, вторая и последующие просмотренные страницы загрузятся гораздо быстрее, а нагрузка на ваш сервер существенно снизится.

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

или

В выражении «access plus …» установите срок хранения файлов на компьютере пользователя. По истечении этого срока, при запросе к сайту файлы будут единоразово загружены с сервера. Оптимальным будет от 7 дней до месяца, хотя иногда устанавливается и год.

Изменение главной (индексной) страницы сайта

Как правило при заходе на сайт сначала загружается страница index.html или index.php. Чтобы изменить это правило (в начале станет загружаться mypage.php) добавляем в .htaccess такой код:

Настройка PHP-параметров через файл .htaccess

Обычно за настройки PHP отвечает файл php.ini, но часть этих настроек можно задать через .htaccess. Для этого используются два выражения: php_value — для логических значений (например включитьвыключить), и php_flag для числовых значений. Вот правила написания этих выражений:

где ЗНАЧЕНИЕ1 может быть on, off, 1 или 0 (1 и on — означает включить, а 0 и off — выключить);ЗНАЧЕНИЕ2 — любое числовое или буквенное значение, которое подходит под конкретную директиву;директива1 (используется только с php_flag) может иметь значения:

magic_quotes_gpc — вклвыкл функцию magic_quotes_gpc

display_startup_errors — вклвыкл показ ошибок, которые происходят при работе PHP

display_errors — вклвыкл показ ошибки в браузер

output_buffering — вклвыкл буферизацию вывода данных

register_globals — вклвыкл глобальные переменные

engine — вклвыкл исполнение PHP в папке в которой находится .htaccess и во всех вложенных

директива2 (используется только с php_value) может иметь такие значения:

upload_max_filesize — устанавливает максимальный размер загружаемого файла

user_agent — задает значение строки user_agent, которую передает сервер

post_max_size — задает максимальный размер пересылаемой почты

mysql.default_user — задает имя пользователя базы данных

mysql.default_password — задает пароль для пользователя БД

mysql.default_host — задает имя хоста БД (обычно это localhost)

sendmail_from — задает имейл для отправки почты с помощью PHP

auto_prepend_file — задает файл, который будет добавлен в начало каждого PHP-скрипта

auto_append_file — задает файл, который будет добавлен в конец каждого PHP-скрипта

Только эксперты отвечают на ваши вопросыНе нашли ответ на свой вопрос?Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Источник: https://ru.hostings.info/schools/htaccess.html

Типовые команды .htaccess с примерами

Кроссплатформенный веб-сервер Apache является одним из наиболее популярных на данный момент, и свою известность он приобрел благодаря распространению на абсолютно бесплатной основе. Кроме того, этот веб-сервер легко поддается тонкой настройке даже для каждого пользователя или каталога, что также является несомненным достоинством.

Настройка в Apache выполняется при помощи директив, записываемых в файл конфигурации. Основным таким файлом является httpd.conf, и в нем указаны команды и настройки, влияющие на работу сервера целиком, то есть — на всех его пользователей.

Совет

Также существуют .htaccess — вспомогательные файлы. С их помощью пользователи, не имеющие доступа к httpd.

conf, могут изменять настройки веб-сервера в рамках своего сайта или доступного каталога, при этом не затрагивая настройки других пользователей.

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

Как настроить .htaccess — примеры типовых команд

Так как между httpd.conf и .htaccess различий не так уж и много, то и директивы в них в большинстве своем одинаковы. Полный список вы можете посмотреть в соответствующей документации, а ниже мы рассмотрим наиболее часто используемые — так называемые типовые.

К типовым командам .htaccess можно отнести:

  • Директивы простого редиректа

Это одна из наиболее востребованных команд. Чтобы выполнить простое перенаправление вам следует записать в файл .htaccess такое выражение:

Redirect / http://www.namesite.com, где http://www.namesite.com — адрес нужного вам сайта.

Данный редирект позволяет отправить пользователя на другой URL при запросе адреса вашего веб-ресурса.

Давайте рассмотрим вариант посложнее:

Redirect / example http://www.example1.com

Redirect / example/download.html http://www.example1.com/download.html

Redirect 301 /kernel http://www.example1.com

Здесь:

example — адрес исходного раздела на сайте;

www.example1.com/ — URL, на который будет перенаправлен пользователь.

В этом случае при открытии example будет выполнен редирект на www.example1.com, а при обращении example/download.html посетитель будет отправлен на http://www.example1.com/download.html. В итоге будет выдан код 301, означающий «документ перемещен постоянно».

Как вариант, 301 редирект в .htaccess можно заменить на следующие коды — 302, 303 или 410.

Также вместо директивы Redirect можно использовать директиву RedirectMatch. Главное отличие состоит в том, что директива RedirectMatch возвращает регулярные выражения, что в некоторых случаях бывает полезно.

  • Директивы сложного редиректа

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

К директивам сложного редиректа можно отнести следующие варианты:

  • RewriteCond — определяет перечень условий, при которых адрес преобразуется.
  • RewriteRule — в .htaccess определяет список правил, задающих процесс преобразования.

При помощи директив сложного редиректа легче всего организовать 301 redirect www в .htaccess. Если на ваш сайт ссылаются как на www.namesite.com и просто на namesite.com, некоторые поисковики разделяют ссылочную массу на два разных доменных имени. 301 редирект дает возможность перевести ссылку с www на без www в .htaccess и наоборот. Предлагаем вам посмотреть примеры RewriteRule .htaccess:

  • для доменного имени без www

RewriteCond %{HTTP_HOST} ^www.(.*)$

RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

  • для доменного имени с www

RewriteCond %{HTTP_HOST} ^([^www].*)$

RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

Таким же образом можно настроить в .htaccess редирект на новый домен при необходимости.

Под обработкой сбоев сервера следует подразумевать всем известные статусные ошибки или «Status Codes». При возникновении данных ошибок на экран пользователя выводится малопонятное сообщение технического характера, и во избежание подобных ситуаций используется директива ErrorDocument.

К примеру, если в .htaccess записать следующее:

ErrorDocument 403 «Sorry can't allow you access today», то при возникновении 403 ошибки пользователю будет выдано записанное в «»…»» пояснение. Так можно сделать и относительно любых других ошибок, в том числе 404 error в .htaccess.

  • Демонстрация индексной страницы

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

Команда Indexes отвечает за то, будет ли отображаться каталог соответствующего раздела, если индексный файл отсутствует.

Если при отсутствии запрашиваемого файла на вашем сайте не нужно показывать каталог, то вам следует указать в конфигурационном файле:

Options -Indexes

Если отображение каталога требуется, укажите в .htaccess:

Options Indexes

Обратите внимание

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

Кодировки, которые встречаются в документах в кириллическом сегменте: Windows-1251, Windows-1250, KOI8-r (КОИ8-Р), UTF-8 (в .htaccess — двухбайтовая кодировка), cp866, Windows-1252.

В .htaccess кодировка задается следующей директивой:

AddDefaultCharset code, где code — требуемая кодировка из тех, что представлены выше.

Также, если в этом есть необходимость, можно задавать перекодировку при загрузке документов и файлов на сервер. К примеру, чтобы все файлы после загрузки были в кодировке Кириллица (DOS), вам следует прописать в .htaccess: CharsetSourceEnc cp866.

Также допустимо в .htaccess закрыть доступ к сайту или к отдельным его элементам для отдельных пользователей или целых категорий. Управление доступом в таких случаях регулируется директивой Order с описанным ниже синтаксисом:

Order [Deny,Allow] | [Allow,Deny]

Стоит иметь в виду:

  • флаги установлены в порядке Deny,Allow — доступ будет запрещен для всех IP, кроме прописанных в команде;
  • флаги установлены в порядке Allow,Deny, тогда доступ будет разрешен для всех IP, кроме прописанных в команде.

Пример применения:

Order Allow,Deny

Allow from all

Deny from aaa bbb

В описанном случае доступ открыт для всех посетителей, кроме IP-адесов aaa и bbb.

Также вы можете вписать в .htaccess запрет доступа к конкретному документу или определенному типу файлов. Для этого упомянутую выше команду нужно заключить в указанный ниже тег.

Для отдельного документа или файла:

Order Allow,Deny

Allow from all

Deny from xxx yyy

, где namefile.html — тот файл, к которому ограничивается доступ.

Для файлов с необходимым расширением:

Order Allow,Deny

Allow from all

Deny from xxx yyy

, где zzz — нужное расширение.

Одной из особенностей .htaccess является то, что директивы для конфигурации PHP допустимо размещать еще и в нем, что позволяет не вносить лишний раз изменения в php.ini.

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

php_flag название директивы on | off

php_value название директивы VALUE

Читайте также:  Как искать покупателей для интернет-магазина

В качестве примера можно привести включение htaccess PHP error reporting. Чтобы включить данное сообщение PHP об ошибках при помощи .htaccess, нужно записать в нем следующее:

php_flag display_errors on

php_flag display_startup_errors on

При желании можно также установить пароль для отдельной папки или целого каталога. Для этого в будущую запароленную папку следует добавить файл с такими командами:

AuthName «Protected area, please, enter the password»

AuthType Basic

AuthUserFile /home/t/test/.authfile

require valid-user

Важно

В описанном выше примере команда AuthName выводит указанный в кавычках запрос на введение пароля. Синтаксис данной директивы прост: AuthName «видимый для пользователя текст».

Директива AuthType позволяет выбрать тип аутентификации. Его можно выбрать из двух типов — Basic | Digest. Советуем выбирать первый, так как второй тип поддерживается не у всех.

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

  • Включение Gzip-сжатия для сайта

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

Чтобы включить Gzip сжатие, в .htaccess необходимо вписать код:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

Так включается сжатие для всех файлов, чьи расширения — html, text, javascript, xml, css.

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

Кроме того, стоит упомянуть, что причиной возникновения ошибки 500 (Internal Server Error) — .htacces, а точнее — ошибка синтаксиса в какой-то из его директив.

О том, где именно она была допущена, вы сможете узнать из лога сервера.

У вас остались вопросы по типовым командам? Например, как принудительно назначить безопасное соединение HTTPS в .htaccess или убрать index.php из адреса вашего сайта на хостинге от RigWEB или при случае, когда вы взяли выделенный сервер в аренду

Пользуйтесь профессиональным хостингом и изменяйте настройки своих сайтов легко и быстро!

Заказать хостинг сайтов

Хостинг за 95 руб. от RigWEB.RU — платный виртуальный хостинг сайтов

Тарифы хостинга

Источник: https://RigWEB.ru/support/upravlenie-uslugoy-podbor-tarifnogo-plana/tipovye-komandy-htaccess-s-primerami/

Описание .htaccess

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

Директивы .htaccess

Перенаправление (редирект)

На другой адрес

Redirect / http://www.example.com

При запросе определенных страниц

redirect /data http://www.expample.com/data
redirect /forum http://forum.example.com

По маске имени файла

Следующая строки определяют, что все запросы кроме запросов к файлам с расширениями .gif и .jpg будут перенаправлены на файл index.php

RewriteEngine On
RewriteRule !.(gif|jpg)$ index.php

Работает только при наличии mod_rewrite

По IP-адресам
Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html

SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR=»redir» RewriteCond %{REDIR} redir

RewriteRule ^/$ /data.html

Работает только при наличии mod_rewrite

Удаление префикса «www.» из адреса

Перенаправление с http://www.mydomain.com на http://mydomain.com

RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]

RewriteRule (.*) http://mydomain.com/$1 [R=301]

Работает только при наличии mod_rewrite

Индексные страницы

Переопределение индексного файла

DirectoryIndex index.html index.php index.shtml

Запрет на отображение содержимого каталога при отсутствии индексного файла

Типы файлов

Изменение обработчика по типу файла

Пример переопределения HTML файлов для обработки их с помощью PHP

AddHandler application/x-httpd-php5 .php .htm .html .phtml

Обработка ошибок

ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html

ErrorDocument 500 /500.html

Кодировка

Отдаваемых файлов

AddDefaultCharset windows-1251

Загружаемых файлов

CharsetSourceEnc windows-1251

Управление доступом

Запрет доступа к файлам

Запрет доступа ко всем файлам и каталогам в текущем каталоге

Запрет доступа к определенному файлу

Запрет доступа к файлам по маске

Спецсимволы для определения маски

? — любой одиночный символ * — любая последовательность символов, исключая символ / (слэш)
Запрет доступа к файлам по регулярному выражению

Определение доступа по IP

order deny,allow deny from all

allow from 192.168.11.1

Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1.

Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыт, так как директива deny, выполняемая последней перекроет действия директивы allow.

Закрытие каталогов паролем

файл .htaccess

AuthName «Auth message» AuthType Basic require [username2] … [usernameN]>

AuthUserFile «/full/path/to/.htpasswd»

Пароли хранятся в файле .htpasswd

Источник: http://www.thejethost.com/hosting/opisanie_htaccess.html

Файл .htaccess и RewriteRule

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

Когда-то я проходил все стадии написания «велосипедов», но чтобы быть нормальным проггером, нужно знать как там всё устроено, это нормально. Сегодня рассмотрим перенаправления с помощью файла .

htaccess для веб-сервера Apache на небольшом примере.

Чтобы не томиться ожиданием, давайте сразу перейдём к задаче: нужно сделать перенаправление со страницы /pages/about.php на /about, т. е. убрать в адресе папку /pages и расширение .php в названии файла. Ещё нужно позаботиться о том, чтобы в конце URL не было закрывающего слеша. Вот такую файловую структуру содержит наш пример:

┌public_html/ ├──pages/ │ ├──about.php │ ├──contact.php │ └──subscribe.php ├──index.php └──.htaccess

Совет

В Apache для преобразования URL’ов есть специальный модуль mod_rewrite. Он отвечает за создание ЧПУ — создаёт красивые URL для PHP-скриптов на уровне веб-сервера. Его мы и задействуем для решения нашей задачи. Для начала создадим конфигурационный файл .htaccess в корне сайта со следующим содержимым, а затем я объясню как он отработает:

# Включаем mod_rewrite RewriteEngine On # Убираем последний слеш RewriteRule ^(.*)/$ /$1 [L,R=301] # Преобразуем /pages/about.php в /about RewriteRule ^(w+)$ /pages/$1.php [L,NC]

Командой RewriteEngine On мы включаем модуль mod_rewrite, а с помощью RewriteRule задаём правила преобразования адресов. RewriteRule просто преобразует входной URL по порядку в соответствии с регулярными выражениями. В конце каждого правила можно задать флаги для указания поведения mod_rewrite при обработке URL. Синтаксис прост как три копейки:

RewriteRule новый реальный [флаг1,флаг2,флаг3]

Давайте разберём первое правило из примера: ^(.*)/$ /$1 [L,R=301] — между маркерами ^ и $ мы указали начало строки с любого символа и любой длины (.*), где конец строки должен заканчиваться на слеш /. Всё, что заключено в круглые скобки (.*) образует группу символов, которую можно использовать через макрос $1.

Теперь все URL’ы, которые заканчиваются на слеш, будут переброшены на адрес без последнего слеша, где /$1 — все входные символы без последнего слеша. Флаг [L] останавливает чтение .

htaccess, а [R=301] генерирует HTTP-код ответа сервера HTTP/1.1 301 Moved Permanently. После того, как правило отработало и Apache обрезал закрывающий слеш, файл .

htaccess выполнится ещё раз и первое правило больше не отработает.

Второе правило: ^(w+)$ /pages/$1.php [L,NC] — пользователь запросит адрес страницы, который имеет буквенное или цифровое содержимое от одного и больше символов (w+). Это образует группу символов, которые мы подставим в адрес скрипта /pages/$1.php. По факту выполниться скрипт под другим URL. Флаг [L] останавливает .htaccess, а [NC] отменяет проверку регистра символов.

Все правила выполняются по порядку. Также стоит обратить внимание на значение флагов, которые могут менять поведение RewriteRule и веб-сервера. Ниже я собрал коллекцию флагов применительно для перенаправлений:

Флаг Описание ——————————————————————————————————————————————————————————————————————————————— [C] Chain — объединяет несколько правил в цепочку. Если первое правило цепочки не срабатывает, то вся цепочка игнорируется. [F] Forbidden — возвращает ошибку 403 Forbidden (запрещено). [G] Gone — возвращает ошибку 410 Gone (удалён). [L] Last — останавливает процесс преобразования, и текущая ссылка считается окончательной. [N] Next — запускает процесс преобразования с первого по порядку правила. [NS] NoSubreq — разрешает срабатывание правила только для настоящих запросов, игнорируя подзапросы. [NC] NoCase — отключает проверку регистра символов. [P] Proxy — даёт команду Apache выполнить подзапрос к указанной странице с использованием программного модуля mod_proxy, при этом пользователь ничего не узнает об этом подзапросе. Если модуль mod_proxy отсутствует, то произойдет ошибка. [PT] PassThrough — останавливает процесс преобразования и передает полученную новую ссылку дальше по цепочке. [QSA] Qsappend — добавляет исходные параметры запроса (Query String) к замене. Если замена не включает в себя новые параметры запроса, то исходные параметры запроса добавляются автоматически. Если же включает, то без флага QSA исходные параметры запроса будут утеряны. [R] Redirect — останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на новую страницу. По умолчанию передаётся HTTP-код 302 Moved Temporarily (перемещенно временно), но его можно изменить путём присвоения нового статуса через знак равенства [R=301]. В этом случае будет передан HTTP-код 301 Moved Permanently (перемещено навсегда). [S] Skip — пропускает следующее правило, если текущее правило сработало. Можно указать количество последующих игнорируемых правил [S=2].

Полезные ссылки:

    Остальные флаги в документации Apache
    Как на самом деле работает mod_rewrite
    Описание основных флагов mod_rewrite
    Волшебный файл .htaccess
    Коллекция сниппетов .htaccess

Источник: https://denisyuk.by/all/htaccess-rewriterule/

Файл .htaccess — настройка перенаправлений и управление конфигурацией веб-сервера

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

На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта  ~/ваш_домен/docs.

Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

Перенаправить запросы на domain.ru с любого из синонимов сайта

RewriteEngine On RewriteCond %{HTTP_HOST} !^domain.ru$ [NC]

RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

Перенаправить запросы на www.domain.ru с любого из синонимов сайта

RewriteEngine On RewriteCond %{HTTP_HOST} !^www.domain.ru$ [NC]

RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]

Эти правила рекомендуется размещать в самом начале файла .htaccess.

2. Постоянное перенаправление с кодом 301

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

Redirect 301 /page.html http://www.domain.ru/new_page.html

где:

  • page.html — адрес старой страницы относительно корня сайта;
  • www.domain.ru — имя сайта;
  • new_page.html — адрес страницы, на которую нужно выполнить перенаправление.

Подобное правило не сработает для перенаправления с адресов, содержащих Query String (символы после ?). Для запросов, содержащих QUERY_STRING, можно использовать сочетание RewriteCond и RewriteRule.

Читайте также:  Обменники litecoin

Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} ^test=123$ [NC]

RewriteRule ^period/$ http://domain.ru/ [L,R=301]

3. Переопределение страниц ошибок

При помощи файла .htaccess вы можете установить свои страницы ошибок:

#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 и др.) необходимо разместить в каталоге ~/ваш_домен/docs/errors.

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

a) в файле ~/ваш_домен/docs/robots.txt прописать

User-agent: *
Disallow: /errors

b) создать файл ~/ваш_домен/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:

7. Включение обработки PHP в .html-файлах

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

8. Запрет выдачи листинга каталога

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

9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py

В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH. Также в разделе Веб-серверУправление модулями должен быть включен модуль CGI.

10. Блокировка переходов со сторонних ресурсов

Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

RewriteEngine on RewriteCond %{HTTP_REFERER} baddomain.ru [NC]

RewriteRule .* — [F]

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

Важно

RewriteEngine on RewriteCond %{HTTP_REFERER} baddomain.ru [NC,OR] RewriteCond %{HTTP_REFERER} baddomain2.ru [NC,OR] RewriteCond %{HTTP_REFERER} baddomain3.ru [NC]

RewriteRule .* — [F]

11. Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.site.ru [NC]

RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]

В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

12. Перенаправление с HTTP на HTTPS и обратно

Перенаправить запросы на https://domain.ru

RewriteEngine on RewriteCond %{ENV:HTTPS} !on

RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Перенаправить запросы на http://domain.ru

RewriteEngine on RewriteCond %{ENV:HTTPS} on

RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

4. Дополнительная документация и примеры

С подробной документацией вы можете ознакомиться на сайте разработчика веб-сервера Apache: http://httpd.apache.org/docs/2.4/rewrite/

Источник: https://www.nic.ru/help/fajl-htaccess-nastrojka-perenapravlenij-i-upravlenie-konfiguraciej-veb-servera_6793.html

Что вам нужно знать об .htaccess

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

Название начинается с точки. Можно сказать, это файл без названия с расширением htaccess. 

Настройки .htaccess действуют на каталог, в котором он расположен, и на все дочерние каталоги. Создайте файл и поместите в нужную вам директорию. Например, в корень проекта.

Теперь нужно его наполнить. Посмотрим, что вообще умеет .htaccess, но для начала изучим пример простейшего редиректа.

mod_rewrite и редиректы

Убедитесь, что в конфигурационном файле Apache httpd.conf активирован mod_rewrite. То есть, раскомментирована соответствующая строка:

LoadModule rewrite_module modules/mod_rewrite.so

Или, если не хотите открывать в текстовом редакторе файл, можно воспользоваться командой в терминале:

sudo a2enmod rewrite

mod_rewrite — это модуль Apache, предназначенный для преобразования URL-ов. Рассмотрим на примере, как он работает. Допустим, пользователь вводит следующий адрес:

http://www.example.com/page.html

C помощью mod_rewrite можно отправить содержание с другого URL, например такого:

http://www.example.com/public/src/view/page.html

Зачем это нам? Легко догадаться, что писать полный путь до страницы долго и просто неудобно. Посетителям сайта не нужно думать о внутренней структуре сайта — им важно максимально быстро попасть на искомую страницу.

В адресной строке пользователь будет всё также видеть введенное им:

http://www.example.com/page.html

Это пример самого простого редиректа.

Сразу к практике

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

php_value short_open_tag 1 php_value upload_max_filesize 10M php_value post_max_size 10M RewriteEngine On RewriteBase / RewriteRule ^(application|modules|system) — [F,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

  • php_value установка строковых и числовых значений
  • php_flag устанавливает логические значения (да/нет)

php_value/php_flag имя_директивы_php flag/value

Директива short_open_tag разрешает использование короткого синтаксиса для оформления PHP-кода:

php_value short_open_tag 1

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

php_value upload_max_filesize 10M

А post_max_size устанавливает максимально допустимый размер данных, отправляемых методом POST. 

php_value post_max_size 10M

Включает/выключает механизм mod_rewrite.

RewriteEngine On

RewriteRule просто преобразовывает строку в соответствии с регулярными выражениями. 

Синтаксис: RewriteRule regular_expression

# На входе RewriteRule «index.php» RewriteRule ^index.php main.php [R] # На выходе: «index.php» -> «main.php»

Мы преобразовали index.php в main.php и выполнили редирект.

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

RewriteRule *regular expression here* —

Символ «-» означает «не преобразовывать»

RewriteBase

После всех RewriteRule, в силу вступает RewriteBase. Если получившийся после преобразований запрос является относительным и отличается от исходного, RewriteBase восстановит его, сделав абсолютным. RewriteBase просто допишет себя к запросу слева. Потому что значение RewriteBase — путь от корня сайта до .htaccess. В нашем случае .htaccess лежит прямо в корне, поэтому:

RewriteBase /

Синтаксис:  RewriteBase URL-path-from-.htaccess-file-to-site-root

Например:

# .htaccess находится в /dir/ # Путь от корня сайта до .htaccess /dir/ RewriteBase /dir/ # Запрос http://example.com/dir/logo.gif # На вход RewriteRule попадает «logo.gif» RewriteRule ^logo.gif$ logo-orange.gif # После RewriteRule: «logo.gif» -> «logo-orange.gif» # После RewriteBase: «logo-orange.gif» -> «/dir/logo-orange.gif»

Регулярные выражения, которые вам могут встретиться в .htaccess.

Больше regular expressions

Флаги

Синтаксис: RewriteRule regular_expression [флаг1,флаг2,флаг3]

Больше флагов здесь

Итак, следующая строка в нашем конфигурационном файле 

RewriteRule ^(application|modules|system) — [F,L]

переводится как:

«Строку, начинающуюся с application или modules или system не преобразовывать, доступ запретить»

А последние три строки можно интерпретировать как

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

«Если запрос не является файлом(!-f) или директорией(!-d), то любое количество любых символов (.*) редиректить по адресу index.php/ после слэша идет полностью результат.* (условие $0), доступ запретить, больше никаких правил преобразования не применять»

  • $0 полностью включает результат регулярного выражения [в нашем случае оно одно .*]
  • $1  включает результат регулярного выражения в первых скобках
  • $N (1

Источник: https://codex.so/htaccess

Настройка редиректа с помощью .htaccess

Есть множество способов настроить редирект — через htaccess, javascript, php, настройки сервера и прочее.

Наиболее популярный способ это настройка файла .htaccess- локальная конфигурация веб-сервера Apache и ему подобных. Настройка происходит путем дописывания в данный файл строк конфигурации по установленным правилам.

Файл .htaccess

В корневой директории сайта нужно создать файл с названием .htaccess, если же файл уже существует — можно перейти к следующему шагу.

Простой редирект

Простой редирект подойдет для перенаправления с конкретного адреса. Например при смене адреса определенной страницы.

За это отвечает команда Redirect, в конце файла нужно вставить строчку примерно следующего содержания:

Redirect /oldpage /newpage

В данном примере со страницы /oldpage происходит перенаправление на страницу /newpage

По умолчанию редирект передается с кодом 301 — перемещен навсегда, если же нужно изменить код на другой. Например 302 — перемещен временно, пример изменится следующим образом:

Redirect 302 /oldpage /newpage

Простой редирект с регулярным выражением

Иногда нужно перенаправить сразу группу страниц, например при смене адреса раздела и в последствии всех вложенных документов, в таком случае следует воспользоваться командой RedirectMatch, которая позволяет использовать регулярные выражения.

Регулярное выражение — это обычная строка, как и в первом примере, но некоторые символы имеют специальное назначение:

  • () выделяет несколько символов, к которым присваивается номер для использования в назначении редиректа;
  • [] разрешенные символы;
  • [^] запрещенные символы;
  •  экранирование спецсимволов;
  • . любой символ;
  • ^ начало строки;
  • $ конец строки;
  • * повторение неограниченное количество раз;
  • + аналогично * но без возможности отсутствовать;
  • ? ставится после символа, который может отсутствовать;
  • | обозначает условие «или», например, выражение «C|D» означает «C или D»;
  • текст после символа # не используется.

Допустим «статьи» стали «новостями». Тогда редирект выглядит:

RedirectMatch /articles/(.*)$ /news/$1

В данном примере страница /articles/article-name перенаправит на /news/article-name

Код редиректа задается так же как и в первом примере.

Сложные редиректы

Сложные редиректы реализуются модулем mod_rewrite входящим в состав веб-сервера Apache.

Для формирования редиректа используются уже две директивы: RewriteCond и RewriteRule.

RewriteCond задает условие, при котором сработает редирект.

RewriteRule задает правила редиректа.

Директиву RewriteCond можно указать несколько раз перед директивой RewriteRule, комбинируя таким образом несколько условий.

Чтобы сложные редиректы работали, перед ними в файле должны присутствовать строки:

RewriteEngine On
RewriteBase /

если их нет- нужно дописать.

Пример редиректа с www.site.com на site.com:

RewriteCond %{HTTP_HOST} !^site.com [NC]RewriteRule (.*) http://site.com/$1 [R=301,L]

В данном примере- если адрес начинается не с домена- сработает редирект на домен.
[R=301,L] — флаг R задает код редиректа, L — останавливает процесс преобразования.

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

Источник: https://domenart-blog.ru/kategorii/sistemnoe-administrirovanie/366-nastrojka-redirekta

Ссылка на основную публикацию