mod-rewrite
Директивы, предоставленные mod-rewrite в Apache 2.4
Поиск…
Синтаксис
- URL-адрес RewriteBase
- RewriteCond TestString CondPattern
- RewriteEngine on | off
- RewriteMap MapName MapType: MapSource
- Параметры RewriteOptions
- Замена шаблона RewriteRule [flags]
Список директив, доступных в Apache 2.4
Apache 2.4 предоставляет следующие 6 директив через модуль mod_rewrite
:
- RewriteBase
- RewriteCond
- RewriteEngine
- RewriteMap
- RewriteOptions
- RewriteRule
Следующие директивы, доступные ранее в Apache 2.2, были удалены:
- RewriteLock
- RewriteLog
- RewriteLogLevel
Все директивы (за исключением RewriteMap
), определенные mod_rewrite
могут быть разрешены для переопределения для каждого каталога .htaccess
через AllowOverride FileInfo
.
директива | контекст | Описание |
---|---|---|
RewriteBase | каталог, .htaccess | Устанавливает базовый URL для каждой перезаписи каталога |
RewriteCond | Везде | Определяет условия, при которых произойдет переписывание |
RewriteEngine | Везде | Устанавливает статус механизма перезаписи |
RewriteMap | конфигурация сервера, виртуальный хост | Определяет функцию поиска ключа |
RewriteOptions | Везде | Устанавливает специальные опции для перезаписи двигателя |
RewriteRule | Везде | Определяет конкретные правила для механизма перезаписи |
Контекст Everwhere
означает, что директива может быть определена в любом из следующих четырех местоположений:
- Конфигурация сервера
- конфигурация виртуального хоста
- контекст каталога
- .htaccess файл
RewriteLog
и RewriteLogLevel
объединены с глобальной директивой LogLevel
и будут использоваться как:
LogLevel rewrite:<level>
где <level>
- значение от trace8
(наименее значимое) до emerg
(наиболее значимое). Этот список доступен здесь .
RewriteBase и RewriteEngine
директива | По умолчанию | контекст | Описание |
---|---|---|---|
RewriteBase | Никто | Каталог, .htaccess | Устанавливает базовый URL для каждой перезаписи каталога |
RewriteEngine | от | везде | Включить или отключить механизм перезаписи времени выполнения |
RewriteBase
В директиве указан префикс URL, который будет использоваться для замены относительных путей.
RewriteEngine
Директива, если она off
, не выполняет обработку перезаписи времени выполнения. Эти правила не наследуются виртуальными хостами (из конфигурации сервера) и должны определяться индивидуально.
RewriteMap
Директива определяет функцию, которая будет искать ключ в определенной карте и заменяет поиск с его заменой с карты.
Функция отображения определяется с помощью RewriteMap
директивы RewriteMap
следующим образом:
RewriteMap MAPNAME Type:Source
и на них можно ссылаться в любой из директив RewriteCond
или RewriteRule
чтобы действовать как руководство по замене следующим образом:
${ MAPNAME : KEY | DEFAULT }
Ниже приведены допустимые значения для Type
в определении карты:
-
int
- позволяет получать толькоtoupper
,tolower
,escape
иunescape
-
txt
- поиск текстового файла -
dbd
- просматривает базу данных, используяSELECT
SQLSELECT
-
rnd
- случайный поиск из текстового файла -
dbm
- аналогичноtxt
, за исключением того, чтоhttxt2dbm
необходимо преобразовать данные в хэши -
fastdbd
- ищет в базе данныхSELECT
SQLSELECT
с кешированием