Синтаксис регулярных
выражений :^ начало строки $
конец строки . (точка) любой
символ (a|b) a или b (…) выбор
группы [abc] любой символ из
диапазона (a или b или c) [^abc]
ни один символ из диапазона
(ни a или b или c) a? символ a 1
или 0 раз a* символ a 0 или
более раз a+ символ a 1 или
более раз a{3} символ a точно 3
раза a{3,} символ a более 3 раз a
{3,6} символ a от 3 до 6 раз !
(pattern) ! — отрицание Флаги
RewriteRule R[=code]
Перенаправление на новый URL
по заданному коду F Forbidden
(отправляет заголовок 403) G
Больше не существует (Gone) P
Прокси (Proxy) L Последнее
правило N Следующий C Chain
T=mime-type Установка mime-
type NS Skip if internal sub-
request NC Не зависимый от
регистра символов QSA Append
query string (Прибавляет строку
запроса) NE Не отменяет
результат PT Через S=x
Пропустить следующие x правил
E=var:value Устанавливает
переменную окружения «var» в
«value». Примеры mod_rewrite #
Сайт перенесен с одного домена
на другой
# с domain.com на domain2.com
RewriteCond %{HTTP_HOST}
^www.domain.com$ [R=301,1]
RewriteRule ^(.*)$ http://
www.domain2.com/$1
# Страница временно
перемещена
# domain.com/page.htm на
domain.com/new_page.htm
RewriteRule ^page.htm$
new_page.htm [R,NC,L]
# Человекопонятный URL (ЧПУ)
# domain.com/category-name-1/
из domain.com/categories.php?
name=category-name-1
RewriteRule ^([A-Za-z0-9-]+)/?$
categories/php?name=$1 [L]
# Человекопонятный URL (ЧПУ)
# domain.com/articles/title/5/ из
domaim.com/articles.php?
name=title
$page=5
RewriteRule ^articles([A-Za-
z0-9-]+) / ([0-9]+)/?$ article.php?
name= $1&page=$2 [L]
# Блокирование спама по
HTTP_REFERER
RewriteCond %{HTTP_REFERER}
(weight) [NC,OR]
RewriteCond %{HTTP_REFERER}
(drugs) [NC]
RewriteRule .* — [F] RewriteCond
FLAGS NC Не зависимый от
регистра символов OR Allows a
rule to apply if one of a series of
conditions are true Коды ответа
сервера 301 Moved permanently
(Перемещен постоянно) 302
Moved temporarily (Перемещен
временно) 403 Forbidden
(Запрещено) 404 Not found
(Файл не файден) 410 Gone
(Больше не существует)
Переменные сервера Формат
%{NAME_OF_VAR} HTTP Headers
(заголовки) HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT Request
(переменные запроса)
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME PATH_INFO
QUERY_STRING
AUTH_TYPE Server (переменные
сервера) DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE Время
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 Директивы
RewriteEngine
RewriteOptions
RewriteLog
RewriteLogLevel
RewriteLock
RewriteMap RewriteBase
RewriteCond
RewriteRule
Тему перенёс из подраздела Общение/Флуд/Оффтоп в подраздел Программирование!