温馨提醒

如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢

本文最后更新于2024年3月9日,已超过 180天没有更新

SSI介绍

SSI是Server Sidde Include的缩写,是服务器包含的意思,支持大部分的web服务器,例如:Apache、Nginx、Tomcat等等。

它的工作原理是:在页面发送到客户端之前,使用SSI指令将待包含的文件、图片等文件包含到请求的网页中,通过一个非常简单的语句即可调用包含文件,此语句指示WEB服务器将内容插入适当网页。

SSI是被HTML文档内需要进行处理的包含部分的SSI Servlet调用的。这些指令是HTML文档的注释形式,这些指令在将内容发送到客户端之前进行内容的替换。

标准配置格式是:<!--#directive [parm=value] -->。

配置项 示例 说明
config <!--#config timefmt="%B %Y" --> 设置日期格式一起被SSI处理的其他数据
echo <!--#echo var="VARIABLE_NAEM" --> 将会被变量的值替换掉
exec -- 用来执行服务器端的命令
include <!--#include virtual="file-name" --> 包含的文件绝对路径
flastmod <!--#flastmod file="filename.html" --> 返回某个文件最后一次修改的时间
fsize <!--#fzie file="filename.html" --> 返回某个文件的大小
printenv <!--#printenv --> 返回所有定义的变量
set <!--#set var="foo" value="Bar" --> 用来为定义的变量赋值

Nginx启用SSI

官方文档地址: Module ngx_http_ssi_module

Nginx的SSI配置选项主要是以下三个:

ssi 默认值off,如果要启用SSI,将其设为on

ssi_silent_errors 默认值off,开启后在处理SSI文件出错时不输出错误提示[an error occurred while processing the directive],实际测试并没有抑制错误。

ssi_types 默认是text/html,所以如果需支持html,则不需要设置这句,如果需要支持shtml格式则需要设置:ssi_types text/shtml

参数的上下文环境是:http, server, location, if in location,下面是示例:

server {
    listen  80;
    server_name  192.168.1.10;
    location / {
        ssi on;
        ssi_silent_errors off;
        ssi_types text/html;
        index index.html;
        root /var/www/html;
        expires 30d;
        access_log      /var/log/nginx/localhost_access_log main;
    }
}

Apache上启用SSI

官方文档地址:Introduction to Server Side Includes

Apache的主配置文件httpd.conf中配置需要支持SSI的后缀(html)

去掉AddType text/shtml,AddOutputFilter INCLUDES .shtml前面注释。

注意一下包含文件的后缀。

宝塔面板开启ssi

点击需要设置的网站

点击配置文件

代码如下:

#开启ssi
ssi on;
ssi_silent_errors on;

然后重启nginx。

设置完成以后,网站模板里加入代码

<!--#include file="/page/header.html"-->

路径一定要写绝对路径,模板设置完成以后,更新缓存,如果网站是生成静态的,需要先生成全站,然后就生效了。

历史上的今天
03月
9
    抱歉,历史上的今天作者很懒,什么都没写!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。