Nginx SSI支持配置

2,503 阅读2分钟

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