Модуль Apache mod_sed
| Описание: | Фильтрация содержимого входных данных (запроса) и выходных данных (ответа) с использованием синтаксиса sed |
|---|---|
| Статус: | Экспериментальный |
| Идентификатор модуля: | sed_module |
| Исходные файлы: | mod_sed.c sed0.c sed1.c regexp.c regexp.h sed.h |
| Совместимость: | Доступен в Apache 2.3 и более поздних версиях |
Краткое описание
mod_sed — это внутрипроцессный фильтр содержимого. Фильтр mod_sed реализует команды редактирования sed, реализованные в программе sed для Solaris 10, как описано на странице руководства. Однако, в отличие от sed, mod_sed не получает данные из стандартного ввода. Вместо этого фильтр обрабатывает данные сущности, передаваемые между клиентом и сервером. mod_sed можно использовать как входной или выходной фильтр. mod_sed является фильтром содержимого, а это значит, что его нельзя использовать для изменения HTTP-заголовков клиента или сервера.
Выходной фильтр mod_sed принимает фрагмент данных, выполняет над ними скрипты sed и формирует выходные данные, которые передаются следующему фильтру в цепочке.
Входной фильтр mod_sed считывает данные из следующего фильтра в цепочке, выполняет скрипты sed и возвращает сформированные данные вызывающему фильтру в цепочке фильтров.
Входной и выходной фильтры обрабатывают данные только при наличии в содержимом символов перевода строки. В конце данных оставшаяся часть данных считается последней строкой. Строки длиной более 8 МБ приводят к ошибке в версии 2.4.54 и более поздних версиях.
Пример конфигурации
Добавление выходного фильтра
# In the following example, the sed filter will change the string
# "monday" to "MON" and the string "sunday" to SUN in html documents
# before sending to the client.
<Directory "/var/www/docs/sed">
AddOutputFilter Sed html
OutputSed "s/monday/MON/g"
OutputSed "s/sunday/SUN/g"
</Directory> Добавление входного фильтра
# In the following example, the sed filter will change the string
# "monday" to "MON" and the string "sunday" to SUN in the POST data
# sent to PHP.
<Directory "/var/www/docs/sed">
AddInputFilter Sed php
InputSed "s/monday/MON/g"
InputSed "s/sunday/SUN/g"
</Directory> Команды Sed
Подробное описание команды sed приведено на странице руководства sed.
b- Переход к указанной метке (аналогично goto).
h- Копирование текущей строки в буфер хранения.
H- Добавление текущей строки в буфер хранения.
g- Копирование буфера хранения в текущую строку.
G- Добавление буфера хранения к текущей строке.
x- Обмен содержимым буфера хранения и текущей строки.
Директива InputSed
| Описание: | Команда Sed для фильтрации данных запроса (обычно данных POST) |
|---|---|
| Синтаксис: | InputSed sed-command |
| Контекст: | directory, .htaccess |
| Статус: | Экспериментальный |
| Модуль: | mod_sed |
Директива InputSed задает команду sed, выполняемую над данными запроса, например данными POST.
Директива OutputSed
| Описание: | Команда Sed для фильтрации содержимого ответа |
|---|---|
| Синтаксис: | OutputSed sed-command |
| Контекст: | directory, .htaccess |
| Статус: | Экспериментальный |
| Модуль: | mod_sed |
Директива OutputSed задает команду sed, выполняемую над ответом.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_sed.html