Spec-Zone.ru › Apache HTTP Server

Модуль 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API