FAQ

Page Discussion Edit History

RuHttpSsiModule

(Redirected from NginxRuHttpSsiModule)

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]


Template:Anchor

[edit] ssi

syntax: ssi [on|off]

default: ssi off

context: http, server, location, if в location

Директива разрешает обработку команд SSI в ответах.

Template:Anchor

[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 произошла ошибка.

Template:Anchor

[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 — имя блока. Пример использования:
: <!--# block name="one" --> : заглушка : <!--# endblock --> :
  • config — команда задаёт некоторые параметры при обработке SSI.
  • errmsg — строка, выводящаяся при ошибке во время обработки SSI. По умолчанию используется такая строка: "[an error occurred while processing the directive] "
  • timefmt — строка, используемая функцией strftime(3) для вывода дат и времени. По умолчанию используется такой формат:
: "%A, %d-%b-%Y %H:%M:%S %Z" : Для вывода времени в секундах подходит формат "%s".
  • echo — команда выводит значение переменной.
  • var — имя переменной.
  • default — нестандартный параметр, задающий строку, которая выводится, если переменная не опеределена. По умолчанию выводится строка "none". Команда
: <!--# echo var="name" default="нет" --> : </code> заменяет такую последовательность команд <code> : <!--# if expr="$name" --><!--# echo var="name" --><!--# else -->нет<!--# endif --> :
  • 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 — задаёт включаемый файл, например:
: <!--# include file="footer.html" --> :
  • 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 — значение переменной. Если в присваиваемом значении есть имена переменные, то производится подстановка их значений.

Template:Anchor

[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.


[edit] References

Original Documentation