RuHttpSsiModule
Contents |
[edit] ngx_http_ssi_module
Модуль ngx_http_ssi_module — фильтр, обрабатывающий команды SSI (Server Side Includes) в проходящих через него ответах. На данный момент список поддерживаемых команд SSI неполон. Содержание Пример конфигурации Директивы
Команды SSI
Встроенные переменные
Пример конфигурации
location / {
: ssi on;
}
[edit] Директивы
- [#ssi ssi]
- [#ssi_silent_errors ssi_silent_errors]
- [#ssi_types ssi_types]
- [#ssi_value_length]
[edit] ssi
syntax: ssi [on|off]
default: ssi off
context: http, server, location, if в location
Директива разрешает обработку команд SSI в ответах.
[edit] ssi_silent_errors
syntax: ssi_silent_errors [on|off]
default: ssi_silent_errors off
context: http, server, location
Директива разрешает не выводить строку "[an error occurred while processing the directive] ", если во время обработки SSI произошла ошибка.
[edit] ssi_types
syntax: ssi_types mime-тип [mime-тип ...]
default: ssi_types text/html
context: http, server, location
Разрешает обработку команд SSI в ответах с указанными MIME-типами в дополнение к "text/html". Команды SSI
Формат команды следующий
: <!--# команда параметр1=значение параметр2=значение ... -->
Ниже перечислены поддерживаемые команды:
- block — команда описывает блок, который можно использовать как заглушку в команде include. Внутри блока могут быть команды SSI.
- name — имя блока. Пример использования:
- config — команда задаёт некоторые параметры при обработке SSI.
- errmsg — строка, выводящаяся при ошибке во время обработки SSI. По умолчанию используется такая строка: "[an error occurred while processing the directive] "
- timefmt — строка, используемая функцией strftime(3) для вывода дат и времени. По умолчанию используется такой формат:
- echo — команда выводит значение переменной.
- var — имя переменной.
- default — нестандартный параметр, задающий строку, которая выводится, если переменная не опеределена. По умолчанию выводится строка "none". Команда
- if — команда выполняет условное включение. Поддерживаются следующие команды:
- <!--# if expr="..." -->
- ...
- <!--# elif expr="..." -->
- ...
- <!--# else -->
- ...
- <!--# endif -->
- На данный момент поддерживаются только один уровень вложенности.
- expr — выражение. В выражении может быть проверка существования переменной:
- <!--# if expr="$name" -->
- </code> сравнение переменной с текстом: <code>
- <!--# if expr="$name = text" -->
- <!--# if expr="$name != text" -->
- </code> или с регулярным выражением: <code>
- <!--# if expr="$name = /text/" -->
- <!--# if expr="$name != /text/" -->
- Если в text встречаются переменные, то производится подстановка их значений.
- include — команда включает в ответ результат другого запроса.
- file — задаёт включаемый файл, например:
- virtual — задаёт включаемый запрос, например:
- <!--# include virtual="/remote/body.php?argument=value" -->
- Несколько запросов на одной странице, обрабатываемые через прокси или FastCGI, работают параллельно. Если нужно последовательная обработка, то нужно воспользоваться параметром wait.
- stub — нестандартный параметр, задающий имя блока, содержимое которого будет выведено, если в тело ответа на запрос пустое или при его исполнении произошла ошибка, например:
- <!--# block name="one" --> <!--# endblock -->
- <!--# include virtual="/remote/body.php?argument=value" stub="one" -->
- wait — нестандартный параметр, указывающий, нужно ли ждать полного исполнения данного запроса, прежде чем продолжать выполнение SSI, например:
- <!--# include virtual="/remote/body.php?argument=value" wait="yes" -->
- set — команда присваивает значение переменной.
- var — имя переменной.
- value — значение переменной. Если в присваиваемом значении есть имена переменные, то производится подстановка их значений.
[edit] ssi_value_length
syntax: ssi_value_length размер
default: ssi_value_length 256b
context: http, server, location
Деректива задаёт размер ssi переменной, по-умолчанию 255 символов.
Встроенные переменные
Модуль ngx_http_ssi_module поддерживает две встроенные переменные:
- $date_local, эта переменная равна текущему времени в локальной временной зоне. Формат даты задаётся командой config с параметром timefmt.
- $date_gmt, эта переменная равна текущему времени в GMT. Формат даты задаётся командой config с параметром timefmt.










