Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203      204      205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 204. Модуль Apache mod_substitute

mod_substitute предоставляет механизм для выполнения замены как регулярных выражений, так и фиксированных строк в телах ответов.

Замещающая директива

Описание:Шаблон для фильтрации содержимого ответа
Синтаксис: Substitute s/pattern/substitution/[infq]
Контекст:каталог, .htaccess
Переопределить:Информация о файле
Положение дел:Расширение
Модуль:mod_substitute

Директива Substitute определяет шаблон поиска и замены для применения к телу ответа.

Значение шаблона можно изменить, используя любую комбинацию этих флагов:

i
Выполните поиск без учета регистра.
n
По умолчанию шаблон рассматривается как регулярное выражение. Использование n флага заставляет шаблон обрабатываться как фиксированная строка.
f
Флаг f приводит mod_substitute к сглаживанию результата замены, позволяя последующим заменам происходить на границе этого. Это значение по умолчанию.
q
Флаг q заставляет mod_substitute не сглаживать ведра после каждой замены. Это может привести к гораздо более быстрому ответу и уменьшению использования памяти, но его следует использовать только в том случае, если нет возможности, что результат одной подстановки когда-либо будет соответствовать шаблону или регулярному выражению последующего.

Пример

 <Расположение "/">
 AddOutputFilterByType ПОДСТАВИТЬ текст/html
 Замените "s/foo/bar/ni"
</местоположение> 

Если шаблон или замена содержат косую черту, следует использовать альтернативный разделитель:

Пример использования альтернативного разделителя

 <Расположение "/">
 AddOutputFilterByType ПОДСТАВИТЬ текст/html
 Замените "s|<BR */?>|<br />|i"
</местоположение> 

Обратные ссылки можно использовать при сравнении и подстановке, когда используются регулярные выражения, как показано в следующем примере:

Пример использования обратных ссылок и захватов

 <Расположение "/">
 AddOutputFilterByType ПОДСТАВИТЬ текст/html
 # "foo=k,bar=k" -> "foo/bar=k"
 Замените "s|foo=(\w+),bar=\1|foo/bar=$1"
</местоположение> 

Распространенным сценарием использования mod_substitute является ситуация, в которой интерфейсный сервер проксирует запросы на внутренний сервер, который возвращает HTML с жестко закодированными встроенными URL-адресами, которые ссылаются на внутренний сервер. Эти URL-адреса не работают для конечного пользователя, поскольку внутренний сервер недоступен.

В этом случае mod_substitute можно использовать для перезаписи этих URL-адресов во что-то, что будет работать из внешнего интерфейса:

Перезапись URL-адресов, встроенных в прокси-контент

 ProxyPass "/блог/" "http://internal.blog.example.com"
ProxyPassReverse "/блог/" "http://internal.blog.example.com/"
Замените "s|http://internal.blog.example.com/|http://www.example.com/blog/|i" 

ProxyPassReverse изменяет любые Location (перенаправляющие) заголовки, отправляемые внутренним сервером, и в этом примере Substitute решает остальную часть проблемы, также исправляя ответ HTML.



Директива SubstituteInheritBefore

Описание:Изменение порядка слияния унаследованных шаблонов
Синтаксис: SubstituteInheritBefore on|off
По умолчанию: SubstituteInheritBefore off
Контекст:каталог, .htaccess
Переопределить:Информация о файле
Положение дел:Расширение
Модуль:mod_substitute
Совместимость:Доступно в httpd 2.4.17 и более поздних версиях.

Следует ли применять унаследованные Substitute шаблоны сначала ( on ) или после шаблонов текущего контекста ( off ). SubstituteInheritBefore сам наследуется, поэтому контексты, которые его наследуют (те, которые не указывают свое собственное SubstituteInheritBefore значение), будут применять ближайший определенный порядок слияния.



Директива SubstituteMaxLineLength

Описание:Установите максимальный размер строки
Синтаксис: SubstituteMaxLineLength bytes(b|B|k|K|m|M|g|G)
По умолчанию: SubstituteMaxLineLength 1m
Контекст:каталог, .htaccess
Переопределить:Информация о файле
Положение дел:Расширение
Модуль:mod_substitute
Совместимость:Доступно в httpd 2.4.11 и более поздних версиях.

Максимальный размер обрабатываемой строки mod_substitute ограничивается ограничением использования памяти. Ограничение можно настроить с помощью SubstituteMaxLineLength . Значение может быть задано как количество байтов и может быть дополнено одной буквой b , B , k , K , m , M , g , G чтобы указать размер в байтах, килобайтах, мегабайтах или гигабайтах соответственно.

Пример

 <Расположение "/">
 AddOutputFilterByType ПОДСТАВИТЬ текст/html
 SubstituteMaxLineLength 10м
 Замените "s/foo/bar/ni"
</местоположение> 


 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203      204      205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru