• HttpSSI模块
  • Directives
  • ssi
  • ssi_silent_errors
  • ssi_types
  • ssi_value_length
  • SSI 命令
  • 内置变量
  • 参考

    HttpSSI模块

    此模块处理服务器端包含文件(ssi)的处理. 列表中的命令当前并未完全支持.

    配置示例

    1. location / {
    2. : ssi on;
    3. }

    Directives

    • [#ssi ssi]
    • [#ssi_silent_errors ssi_silent_errors]
    • [#ssi_types ssi_types]
    • [#ssi_value_length ssi_value_length]

      ssi

    语法:*ssi [ on | off ]*

    默认值:*ssi off*

    作用域:*http, server, location* 在location作用域中将启用SSI文件处理.

    ssi_silent_errors

    语法:*ssi_silent_errors [on|off]*

    默认值:*ssi_silent_errors off*

    作用域:*http, server, location*

    在处理SSI文件出错时不输出错误提示:"[an error occurred while processing the directive] "

    ssi_types

    语法:*ssi_types mime-type [mime-type …]*

    默认值:*ssi_types text/html*

    作用域:*http, server, location*

    Enables SSI processing for MIME-types in addition to "text/html" types.

    ssi_value_length

    语法:*ssi_value_length length*

    默认值:*ssi_value_length 256*

    作用域:*http, server, location*

    定义SSI允许使用的参数长度

    SSI 命令

    格式示例如下:

    1. : <!--# command parameter1=value parameter2=value... -->

    支持的SSI 命令如下:

    • block — command describes the block, which can be used as a silencer in command include. Inside the block there can be commands SSI.
    • name — the name of the block. For example:
      : : the silencer : :

    • config — assigns some parameters with working SSI.

    • errmsg — the line, which is derived with the error during the SSI processing. By default, this string is used: "[an error occurred while processing the directive] "
    • timefmt — the time formatting string, as used in strftime(3). By default, this string is used:
      : "%A, %d-%b-%Y %H:%M:%S %Z" : To include time in seconds use the format "%s" as well.

    • echo - print a variable

    • var — the name of the variable
    • default - if the variable is empty, display this string. Defaults to "none". Example:
      : : </code> is the same as : no :

    • if / elif / else / endif — conditionally include text or other directives. Usage:
      ………Only one level of nesting is possible.

    • expr — the expression to evaluate. It can be a variable: ~~~


      1. <!—# if expr="$name" —></code> A string comparison: <code><!—# if expr="$name = text" —><!—# if expr="$name != text" —></code> Or a regex match: <code><!—# if expr="$name = /text/" —><!—# if expr="$name != /text/" —>Если в text встречаются переменные, то производится подстановка их значений.

    • <code>include — include a document from another source.

    • file — include a file, e.g.
    1. : <!--# include file="footer.html" --> :
    2. - *virtual* include a request, e.g.
    3. <!--# include virtual="/remote/body.php?argument=value" -->Multiple requests will be issued in parallel. If you need them issued sequentially, use the "wait" option.
    4. - *stub* The name of the block to use as a default if the request is empty or returns an error.
    5. <!--# block name="one" --> <!--# endblock --><!--# include virtual="/remote/body.php?argument=value" stub="one" -->
    6. - *wait* when set to yes, the rest of the SSI will not be evaluated until the current request is finished. Example:

    ~~~

    • set - assign a variable.
    • var — the variable.
    • value — its value. If it contains variable names, these will be evaluated.

      内置变量

    ngx_http_ssi_module 支持两种内置变量:

    • $date_local - 当前的本地时区时间.配置选项"timefmt"控制格式.
    • $date_gmt - 当前的GMT时间. 配置选项"timefmt"控制格式.

      参考

    Original Documentation

    原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/3.22_httpssi.html