SSI 是一种类似于 ASP 的基于服务器的网页制作技术。将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中。例如,可以使用 SSI 包含时间/日期戳、版权声明或供客户填写并返回的表单。对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法。将内容存入一个包含文件中即可,而不必将内容输入所有文件。通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页。而且,使用包含文件时,对内容的所有更改只需在一个地方就能完成。 因为包含 SSI 指令的文件要求特殊处理,所以必须为所有 SSI 文件赋予 SSI 文件扩展名。默认扩展名是 .stm、.shtm 和 .shtml。nginx 默认就自带了 SSI,不需要安装任何组件模块。
#ssi
语法:ssi [ on | off ]
默认值:ssi off
配置段段:http, server, location, if
注意如果启用 SSI,那么 Last-Modified 头和 Content-Length 头不会传递。
#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
默认只解析 text/html 类型,这个参数可以指定其他的 MIME 类型。
#ssi_value_length 语法:ssi_value_length length
默认值:ssi_value_length 256
配置段:http, server, location
定义允许 SSI 使用的参数值的长度。
例:
修改nginx.conf配置文件
location / {
root html;
#ssi配置开始
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
#ssi配置结束
index index.html index.htm;
}
编写文件a.html
<html>
<head>
</head>
<body>
A.OK
<!--引入b.html-->
<!--# include file="b.html" -->
</body>
</html>
编写文件b.html
<html>
<head>
</head>
<body>
B.OK
</body>
</html>
把编写的两个html都放到nginx的html目录中,并通过浏览器访问a.html,可以得到以下结果:
A.OK B.OK