Регулярные выражения |
^ |
Начало строки |
$ |
Конец строки |
. |
Любой одиночный символ |
(a|b) |
«a» или «b» |
(…) |
Группа |
[abc] |
«a» или «b» или «c» |
[^abc] |
Не «a», не «b» и не «c» |
\s |
Пробел |
a? |
0 или 1 символ «a» |
a* |
0 или больше «a» |
a*? |
0 или больше «a», нежадный |
a+ |
1 или больше «a» |
a+? |
1 или больше «a», нежадный |
a{3} |
Ровно 3 «a» |
a{3,} |
3 или больше «a» |
a{3,6} |
От 3 до 6 «a» |
a{3,6}? |
От 3 до 6 «a», нежадный |
!(…) |
Префикс «НЕ», отрицание |
Флаги RewriteRule |
R[=код] |
Редирект, возможно с кодом |
F |
Доступ запрещен |
G |
«Мертвая страница», удалена |
P |
Прокси |
L |
Последнее правило |
N |
Следующий круг (перезапуск правил) |
C |
Не «a», не «b» и не «c» |
T=тип |
Установить MIME тип |
NS |
Пропустить внутренний подзапрос |
NC |
Не учитывать регистр |
QSA |
Добавить строку запроса |
NE |
Не экранировать при выходе |
PT |
Пропустить через следующий |
S=x |
Пропустить следующие x правил |
E=var:val |
Установить переменную окружения |
Флаги RewriteCond |
NC |
Не учитывать регистр |
OR |
Комбинировать по принципу «ИЛИ» |
Коды перенаправления |
301 |
Перенесен постоянно |
302 |
Перенесен временно |
403 |
Доступ запрещен |
404 |
Страница не найдена |
410 |
«Мертвая страница», удалена |
|
Пример: новый домен |
# Перенаправление с domain.com на domain2.com |
RewriteCond %{HTTP_HOST} ^www\.domain.com$ [NC] |
RewriteRule ^(.*) http://domain2.com/$1 [R=301,L] |
Пример: страница временно перенесена |
# Перенаправление с domain.com/page.html на domain.com/new_page.html |
RewriteRule ^page.html$ new_page.html [R,NC,L] |
Пример: человеко-понятные URL (без строки запроса) |
# Перенаправление с domain.com/category/ на domain.com/categories.php?name=category |
RewriteRule ^([A-Za-z0-9-]|+)?$ categories.php?name=$1 [L] |
Пример: блокировать спам |
# Блокировать, если URL содержит «viagra» или «xxx» |
RewriteCond %{HTTP_REFERER} (viagra) [NC,OR] |
RewriteCond %{HTTP_REFERER} (xxx) [NC] |
RewriteRule .* — [F] |
|
Переменные: запрос |
%{REMOTE_ADDR} |
%{REMOTE_HOST} |
%{REMOTE_USER} |
%{REMOTE_IDENT} |
%{REQUEST_METHOD} |
%{SCRIPT_FILENAME} |
%{PATH_INFO} |
%{QUERY_STRING} |
%{AUTH_TYPE} |
Переменные: сервер |
%{DOCUMENT_ROOT} |
%{SERVER_ADMIN} |
%{SERVER_NAME} |
%{SERVER_ADDR} |
%{SERVER_PORT} |
%{SERVER_PROTOCOL} |
%{SERVER_SOFTWARE} |
Директивы |
RewriteEngine |
RewriteOptions |
RewriteLog |
RewriteLogLevel |
RewriteLock |
RewriteMap |
RewriteBase |
RewriteCond |
RewriteRule |
|
Переменные: HTTP-заголовки |
%{HTTP_USER_AGENT} |
%{HTTP_REFERER} |
%{HTTP_COOKIE} |
%{HTTP_FORWARDED} |
%{HTTP_HOST} |
%{HTTP_PROXY_CONNECTION} |
%{HTTP_ACCEPT} |
Переменные: время |
%{TIME_YEAR} |
%{TIME_MON} |
%{TIME_DAY} |
%{TIME_HOUR} |
%{TIME_MIN} |
%{TIME_SEC} |
%{TIME_WDAY} |
%{TIME} |
Переменные: специальные |
%{API_VERSION} |
%{THE_REQUEST} |
%{REQUEST_URI} |
%{REQUEST_FILENAME} |
%{IS_SUBREQ} |
|