nginx的SSI


作用域 location | server | location | location 的 if 中

ssi [on | off];
ssi_silent_errors [on | off];
#如果在处理SSI的过程中出现“[an error occurred while processing the directive]”错误,禁止将其输出。
ssi_types mime-type [mime-type ...]
#解析 ssi 的类型
ssi_value_length length
#默认256 允许SSI使用的参数值的长度

命令格式

命令格式如下:

<!--# command parameter1=value  parameter2=value...parameterN=value --> 

(#)前面必须以两个-开头

支持的SSI命令

block

命令描述一个可以在include命令中使用的块,在块中可以存在SSI命令。

name - 块的名称

 <!--# block name="one" >
 the silencer
 <!--# 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="no" >

与下列等效:

<!--# if expr="$name" >
<!--# echo var="name" >
<!--# else >no<!--# endif >

if-elif-else-endif

根据条件包含其他字段或者指令,用法:

<!--# if expr="..." >
    ...
<!--# elif expr="..." >
    ...
<!--# else >
    ...
<!--# endif >

上述例子中只有一个嵌套为真。

  • expr - 判定一个表达式,可以是
    • 变量:<!--# if expr="$name" >
    • 比较字符串:<!--# if expr="$name = text" > <!--# if expr="$name != text" >
    • 匹配正则:<!--# if expr="$name = /text/" > <!--# if expr="$name != /text/" >
    • 如果使用变量,则用他们的值代替。

include

包含一个其他来源的记录。

  • file 包含一个文件
    <!--# include file=" footer.html" >

  • virtual 包含一个请求
    <!--# include virtual="/remote/body.php?argument=value">

file或者virtual包含的文件必须在server中配置为一个location。
“file”等同于带”wait”选项的”virtual”,但是现在他们基本都处理同样的操作,都可以处理一个URI或者一个静态文件。
如果有多个请求它们将并行发出,如果需要按顺序发出,请使用“wait”选项

stub

如果请求为空或返回一个错误后使用的默认块。

<!--# block name="one" >
<!--# endblock >
<!--# include virtual="/remote/body.php?argument=value" stub="one" >

wait

当设置为yes时,在当前的请求未完成之前剩余的SSI不会进行判定, 例如:

<!--# include virtual="/remote/body.php?argument=value" wait="yes" >

set

设置一个变量。
- var 变量
- value 包含变量名变量的值,它们将被判定。

变量

  • $date_local 本地时区的当前时间,选项 “timefmt”可以指定格式。

  • $date_gmt 当前的格林尼治时间,选项 “timefmt”可以指定格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值