description
服务器端嵌入或者叫服务器端包含,是Server Side Include的简写。SSI技术通过在文档中加入SSI指令,让服务器端在输出文档之前解析SSI指令,并把解析完的结果和文档一同输出给客户端。
Nginx配置SSI
server {
listen 10.3.9.27:80;
server_name www.zxysilent.com;
location / {
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
index index.shtml;
root /usr/local/web/wwwroot;
expires 30d;
access_log /data/logs/ www.zxysilent.com-access_log main;
}
}
使用SSI
base
格式:<!-- #指令名称 参数="参数值">
eg: <!--#include file="info.htm"-->
说明:<!-- -->
是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。
#include
为SSI指令之一。
file
为include
的参数, info.htm
为参数值,在本指令中指将要包含的文档名。
注意
前面与#
号间无空格,只有SSI指令与参数间存在空格。
SSI指令是大小写敏感的,因此参数必须是小写才会起作用。
include
把其它文档插入到当前被解析的文档中
<!--#include file="file_name_extension"-->
file 指定包含文件相对于本文档的位置
<!--#include virtual="/path/file_name_extension"-->
virtual 指定相对于服务器文档根目录的位置
- file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的
naver.html
文档,则为file="naver.html
。 - virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下
inc
目录下的naver.html
文件;则为virtual="/inc/naver.html"
注意 文件名称必须带有扩展名。
echo
将环境变量插入到页面中
<!--#echo var="变量名称"-->
eg
<!--#echo var="DOCUMENT_NAME"--> 本文档名称
<!--#echo var="DATE_LOCAL"--> 现在时间
<!--#echo var="REMOTE_ADDR"--> 你的IP地址
flastmod
显示指定文件的最后修改日期
<!--#flastmod file="file_name_extension"-->
<!--#flastmod virtual="/path/file_name_extension"-->
fsize
显示文件的大小
<!--#fsize file="文件名称"-->
exec
将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi
<!--#exec cmd="file_name_extension"-->
cmd 常规应用程序
<!--#exec cgi="file_name_extension"-->
CGI脚本程序 eg
<!--#exec cmd="dir /b"--> 将会显示当前目录下文件列表
<!--#exec cgi="/cgi-bin/demo.cgi"--> 将会执行CGI程序demo.cgi。
config
指定返回给客户端浏览器的错误信息、日期和文件大小的格式
<!--#config errmsg="自定义错误信息"-->
errmsg 自定义SSI执行错误信息,可以为任何你喜欢的方式。
<!--#config sizefmt="显示单位"-->
sizefmt 文件大小显示方式,默认为字节方式("bytes")可以改为千字节方式("abbrev")
<!--#config timefmt="显示格式"-->
timefmt 时间显示方式,最灵活的配置属性。
eg
- 显示一个不存在文件的大小
<!--#config errmsg="服务器执行错误,请联系管理员"--> <!--#fsize file="noexist.htm"-->
- 以千字节方式显示文件大小
<!--#config sizefmt="abbrev"--> <!--#fsizefile="news.htm"-->
- 以特定的时间格式显示时间
<!--#config timefmt="%Y年/%m月%d日 星期%W 北京时间%H:%M:%s,%Y年已过去了%j天 今天是%Y年的第%U个星期"--> <!--#echo var="DATE_LOCAL"--> 显示今天是星期几,几月,时区
时间格式
%a 一周中某天的缩写(例如,Mon)。
%A 一周中某天的全称(例如,Monday)。
%b 月份的缩写(例如,Feb)。
%B 月份的全称(例如,February)。
%c 当地的日期和时间的表示(例如,05/06/91 12:51:32)。
%d 以十进制数字表示的一个月中的某天 (01-31)。
%H 24 小时格式 (00-23)。
%I 12 小时格式 (01-12)。
%j 以十进制数字表示一年中的某天 (001-366)。
%m 以十进制数字表示的月份 (01-12)。
%M 以十进制数字表示的分 (00-59)。
%p 当地的上午或下午指示符(例如,PM)。
%S 以十进制数字表示的秒 (00-59)。
%U 以十进制数字表示一年中的某一周,星期日作为一周的开始 (00-51)。
%w 以十进制数字表示一周中的某一天,星期天是第一天 (0-6)。
%W 以十进制数字表示一年中的某一天,星期一作为一周的开始 (00-51)。
%x 当地的日期表示(例如,05/06/91)。
%X 当地的时间表示(例如,12:51:32)。
%y 以十进制数字表示的不带有世纪的年(例如,69)。
%Y 以十进制数字表示的带有世纪的年(例如,1969)。
%z, %Z 时区全称或缩写;如果不知道时区,则没有字符。
Comments