Выкройки прямых подъюбников


Опубликовано: 19.11.2017, 06:21/ Просмотров: 334

Регулярные выражения в файле.htaccess используются в RewriteCond и RewriteRule, то есть для описания условий срабатывания правил и для описания самих правил. С помощью регулярных выражений задаются шаблоны строк. Синтаксис - такой же как в языке Perl.

Элементы

Метасимволы

Используются для задания групп символов или «меток» в шаблоне. Например, метки начала или конца строки.

\ Экранирование. Считать следующий метасимвол обычным символом. ^ Метка начала строки. $ Метка конца строки. .(точка) Заменяет собой любой произвольный символ, но только один. Кроме символа конца строки. | Логическое ИЛИ, варианты выборки. () Группировка. [] Класс символов. Например, [abc]. [^...] Инвертированный класс символов. Например, [^abc].

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

Модификаторы

Ставятся после обычных символов, метасимволов или их групп. Расширяют возможности использования шаблонов.

? Символ повторяется 0 или 1 раз. Повторяется от 0 до 65536 раз. + Повторяется от 1 до 65536 раз. {n} Точно n раз. {n,} От n до 65536 раз включительно. {n,m} От n до m раз включительно.

Примеры шаблонов

^linux
Любые строки, начинающиеся со слова linux. Строка, начинающаяся со слова altlinux не удовлетворит критерию.

windows$
Любые строки, заканчивающиеся набором символов windows. Строка, заканчивающаяся на windows-suck под выбор не попадёт.

.
Любой символ повторяется любое количество раз. Под критерий попадут все строки.

^(.)$
Выбрать любую строку и сохранить её как переменную для дальнейшего использования.

^(.+)/(.+)$
Разбить строку на две части: до слэша и после, части строки будут доступны по переменным и.

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

Пример для ясности:
RewriteRule ^(.+)/(.+)$ /?a=&b= [R=301,L]
http://www.it-simple.ru/1/2/3/4/5
http://www.it-simple.ru/?a=1/2/3/4&b=5

[0-9]{1,6}$
Выбрать все строки, оканчивающиеся от 1 до 6 цифами из диапазона от 0 до 9.

Примеры правил

В начало.htaccess обычно ставят:

RewriteEngine On RewriteBase /

Первая строка включает обработку правил, вторая — обрезает полный путь (от корня сервера) до корня сайта.
/home/papka-s-saitom/public_html/razdel/podrazdel/ — таким был путь до RewriteBase /
/razdel/podrazdel/ — таким станет после

Благодаря «RewriteBase /» удобнее делать преобразования URI (убирается привязка к физическому расположению файлов сайта на сервере).

Ставим 301 редирект с www.имя.сайта на имя.сайта
(убираем "www").

RewriteCond %{HTTP_HOST} ^www.имя.сайта$ RewriteRule (.) http://имя.сайта/ [R=301,L]

Делается для поисковых машин, выкройки прямых подъюбников чтобы не бить статистику.

При запросе файла.htaccess говорим, что он не существует (410, GONE).

RewriteRule ^/.htaccess$ - [G]

Запрещаем вход на сайт Интернет Експлореру (вернее, кто себя так определяет) и пользователям с определённого IP-адреса (xxx.xxx.xxx.xxx).

RewriteCond %{HTTP_USER_AGENT} MSIE RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$ RewriteRule ^.$ - [F]

Изменяем переменные php и передаём обработку другому скрипту.

RewriteCond %{QUERY_STRING} ^parameter=(.+)$ RewriteRule (.) parameter.php\?%1 [L]

В этом примере запрос вида
index.php?parameter=some
преобразуется в
parameter.php?some

Убираем переменные php из запроса
(вырезаем из URI всё, что находится после знака вопроса)

RewriteRule (.)? [R=301,L]
Источник: http://www.it-simple.ru/?p=2109


Закрыть ... [X]

Тверь Википедия Чтобы дольше остался загар

Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников Выкройки прямых подъюбников