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- просматривает базу данных, используяSELECTSQLSELECT -
rnd- случайный поиск из текстового файла -
dbm- аналогичноtxt, за исключением того, чтоhttxt2dbmнеобходимо преобразовать данные в хэши -
fastdbd- ищет в базе данныхSELECTSQLSELECTс кешированием