Как сделать сервер для хоста


Опубликовано: 29.10.2017, 18:57/ Просмотров: 973

Регулярные выражения в файле .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]

Руководство по установке и настройке OpenVPN / Хабрахабр Модели для вязания спицами с капюшоном

Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста Как сделать сервер для хоста

Похожие новости