apache版本2.2.22
指令格式:
<!--#element attribute=value attribute=value ... -->
这种格式非常巧妙,因为如果服务器不支持shtml,那么这边的指令对于html来说就是注释,不会在页面上显示出来。
1、包含文件include
<!--#include file="footer.shtml" --> <!--#include virtual="footer.shtml" -->
file和virtual的区别在于:file属性是一个相对于当前目录的文件路径,即不能是一个绝对路径以“/”开头或包含“../”的路径。virtual属性可以是一个相对于被提供的文档的URL ,可以以“/”开头,但必须与被提供的文档位于同一服务器上。如:
<!--#include virtual="/footer.shtml" -->
2、执行系统命令或cgi程序exec
使用exec指令可以执行系统命令或者脚本文件,并显示返回结果。下面指令就是列出目录的文档:
<!--#exec cmd="ls" -->
在windows系统下就是dos命令:
<!--#exec cmd="dir" -->
执行php的脚本:
<!--#exec cmd="php /var/www/top.php" -->
3、输出服务器端环境变量echo
输出当前的系统时间:
<!--#echo var="DATE_LOCAL" -->
页面输出:
Thursday, 24-Jan-2013 10:42:56 CST
如果需要格式化时间显示可以使用config设置:
<!--#config timefmt="%Y-%m-%d %H:%M:%S" --> 文件最后修改时间:<!--#flastmod file="footer.shtml" -->
时间格式化(在这个例子: %Y-%m-%d %H:%M:%S) 的其它参数可以参考C语言中的strftime函数,它们是一致的。上例输出:
文件最后修改时间:2013-01-24 10:26:11
4、显示web文档相关信息
flstmod指令显示文件最后修改时间:
<!--#flastmod file="header.shtml" -->
fsize指令显示文件的大小,单位是bytes:
<!--#fsize file="footer.shtml" -->
5、配置指令config
配置错误信息提示:
<!--#config errmsg="[error occur]" -->
显示文件大小时,以K为单位进行显示:
<!--#config sizefmt="abbrev" -->
格式化时间显示:
<!--#config timefmt="%Y-%m-%d %H:%M:%S" -->
6、设置变量指令set
<!--#set var="name" value="Anny" --> <!--#echo var="name" -->
7、流程控制指令if
简单示例:
<!--#set var="name" value="Anny" --> <!--#if expr="${name}==Anny" --> Anny <!--#elif expr="${name}==Tom" --> Tom <!--#else --> other <!--#endif -->
小结
不同的web服务器ssi指令有些不一致,这里的ssi指令主要针对apache服务器,其它的web服务器可以参考相应手册。
转载请注明:快乐编程 » apache ssi指令格式整理记录