什么是SSI
SSI全称是Server Side Includes,即服务器端包含,是一种基于服务器端的网页制作技术。 SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。
基本原理就是:SSI在HTML文件中,可以通过注释行调用命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。
SHTML文件
SHTML即Server-Parsed HTML。
shtml文件(还有stm、shtm文件)就是应用了SSI技术的html文件,所以在.shtml页面返回到客户端前,页面中的SSI指令将被服务器解析。可以使用SSI指令将其它文件、图片包含在页面中,也可以将其它的CGI程序包含在页面中,如.aspx文件。在给客户端返回的页面中不会包含SSI指令。如果SSI指令不能被解析,则浏览器会将其做为普通的HTML注释处理。
SSI基本语法
1、显示服务器端环境变量<#echo>
本文档名称:<!--#echo var="DOCUMENT_NAME"-->
现在时间:<!--#echo var="DATE_LOCAL"-->
显示IP地址:<!--#echo var="REMOTE_ADDR"-->
2、将文本内容直接插入到文档中<#include>
<!--#include file="文件名称"-->
<!--#include virtual="index.html" -->
<!--#include virtual="文件名称"–>
<!--#include virtual="/www/footer.html" -->
3、显示WEB文档相关信息<#flastmod><#fsize>
(如文件制作日期/大小等)
文件最近更新日期:<! #flastmod file="文件名称"–>
文件的长度:<!--#fsize file="文件名称"-->
4、直接执行服务器上的各种程序<#exec>
(如CGI或其他可执行程序)
<!--#exec cmd="cat /etc/passwd"--
<!--#exec cgi="/cgi-bin/access_log.cgi"–>