SSI使用详解(你运气真好,我刚看到的)
时间:2007-02-17 来源:PHP爱好者
SSI使用详解
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2000-05-28· 吕晓波·CPCW
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
你是否曾经或正在为如何能够在最短的时间内完成对一个包含上千个页面的网站的修改而苦恼?那么可以看一下本文的介绍,或许能够对你有所帮助。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
什么是SSI?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。本文将主要结合Apache服务器介绍SSI的使用方法。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如何启动SSI?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
在Apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用SSI的目录中创建.htaccess文件启动SSI。具体来说,过程如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
1.服务器配置文件
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户具有对服务器配置文件的访问权限,可以通过编辑文件access.conf和srm.conf启动SSI。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
首先使用Telnet远程登录服务器,找到配置文件的存放目录。一般来说,Apache服务器的配置文件都被保存在“/usr/local/etc/httpd/conf”目录下。使用任何一种文字编辑器打开文件srm.conf,找到以下几行:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# If you want to use server side includes, or CGI outside
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# scriptAliased directories, uncomment the following lines.
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
#AddType text/x-server-parsed-html .shtml
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
#AddType application/x-httpd-CGI .CGI
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
用户的配置文件中可能没有上述的注释指令行,但是只要找到以AddType开头的两行并且去掉每一行最前面的“#”符号即可。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
保存所做的修改,然后再打开文件access.conf。用户需要在文件中找到设置DocumentRoot(根文件)的部分。一般来说该段文本如下,但是不排除<Directory>和</Directory>标签之间还包含其它设置内容。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# This should be changed to whatever you set DocumentRoot to.
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<Directory /usr/local/etc/httpd/htdocs>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# This may also be "None", "All", or any combination of "Indexes",
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# "Includes", or "FollowSymLinks"
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Options Indexes FollowSymLinks Includes
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
</Directory>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户不希望执行脚本或shell命令,可以在options选项行中加入关键字IncludesNOEXEC,这样可以允许SSI,但是不能执行CGI或脚本命令。(注:最新版本的Apache服务器只有一个配置文件httpd.conf,以上所提到的内容都已经被包含在该文件中)
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2.创建文件.htaccess
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户不能直接访问服务器配置文件,可以使用文件编辑器创建一个名为.htaccess的文件。注意,文件名前一定要有符号“.”,这样服务器才能知道该文件是隐藏文件,从而提高文件的安全性,避免错误操作。在.htaccess文件中需要加入以下三行文字:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Options Indexes FollowSymLinks Includes
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType application/x-httpd-CGI .CGI
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType text/x-server-parsed-html .shtml
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
完成之后可以把.htaccess文件上传到服务端的相应目录,该文件对所有子目录有效。如果用户希望在目录级上禁止CGI或shell命令,可以在.htaccess文件中的Options选项行加入关键字IncludesNOEXEC。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
3.使用.shtml还是.html?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
任何包含SSI的文件在下传到客户端之前,都必须经过服务器的解析过程。虽然从某种程度上这样会增加服务器的负载,但是除非用户的网站每天有几百万的访问用户,某则服务器的性能不会有明显的下降。不过,如果不是需要在每个页面都使用SSI的话,确实没有必要让服务器解析每一个页面。如果用户只希望在几个特殊页面中使用SSI,可以将文件的后缀名改为.shtml,这样服务器就可以只解析包含SSI的.shtml文件。另一方面,如果有多个页面使用了SSI,但是用户不希望使用.shtml的后缀名时,可以在.htaccess文件中使用以下命令行:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType text/x-server-parsed-html .html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI语法
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI在使用时遵循以下格式:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#directive parameter="value"-->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
其中,directive是向服务器发送的指令名称,parameter是指令的操作对象,而value则是用户希望得到的指令处理结果。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
所有的SSI命令都是以“<!--#”开始,其中“<!—”和“#”之间不能有任何空格,否则服务器会把SSI命令当称普通的文件注释处理,不会显示出任何结果,也不会产生错误提示。此外,SSI命令中的“=”两边不能有空格,右边的值必须包含在双引号内,后面可以跟空格,最后是结束标签“-->”。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI命令包含六大类指令以及各自的参数,具体如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
directives parameters
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Config errmsg, timefmt, sizefmt
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
include virtual, file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
echo var
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
fsize file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
flastmod file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
exec cmd, cgi
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
下面我们将逐一进行介绍。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
1.Config命令
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Config命令主要用于修改SSI的默认设置。其中:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config errmsg="Error! Please email [email protected] -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Timefmt:定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, %B %d, %Y"-->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="LAST_MODIFIED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Wednesday, April 12, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
格式 说明 实例
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%% %
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%a 一周七天的缩写形式 Thu
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%A 一周七天 Thursday
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%b 月的缩写形式 Apr
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%B 月 April
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%d 一个月内的第几天 13
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%D mm/dd/yy日期格式 04/13/00
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%H 小时(24小时制,从00到23) 01
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%I 小时(12小时制,从00到11) 01
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%j 一年内的第几天,从01到365 104
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%m 一年内的第几个月,从01到12 04
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%M 一小时内的第几分钟,从00到59 10
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%p AM或PM AM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%r 12小时制的当地时间,格式为 01:10:18 AM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%I:%M:%S AM | PM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%S 一分钟内的第几秒,从00到59 18
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%T 24小时制的%H:%M:%S时间格式 01:10:18
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%U 一年内的第几个星期,从00到 15
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
52,以星期天作为每个星期的
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
第一天
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%w 一星期内的第一天,从0到6 4
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%W 一年内的第几个星期,从00 15
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
到53,以星期一作为每个星期
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
的第一天
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%y 年的缩写形式,从00到99 00
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%Y 用四位数字表示一年 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%Z 时区名称 MDT
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为“bytes”;对于千字节和兆字节可以使用缩写形式。同样,sizefmt参数必须放在fsize命令的前面才能使用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config sizefmt="bytes" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#fsize file="index.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2.Include命令
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Include命令具有两个不同的参数,如果使用错误的参数更新站点的话,不仅达不到初衷,反而会得到一大堆的错误信息。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Virtual:给出到服务器端某个文档的虚拟路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
为了更加合理的组织站点的内容,用户可以在根目录下创建includes子目录来存放所有的包含文件。Virtual参数可以通知服务器所要包含的是一个虚拟文件,即文件和当前被解析的文档不是位于同一个目录,而是存放在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这种方法,用户可以把所有HTML文档包含的文件放在一个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。无论服务器解析哪一个文档都可以找到所包含的文件,不会产生任何错误。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
不过这里有一个小问题需要解决。一般我们都会在页面中加入一些TITLE和META标签,如果我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的问题时,可以使用两个包含文件,一个设置TITLE标签前的内容,另一个设置META标签后的部分,而在两个包含文件之间则可以添加任何定制内容。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header1.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<TITLE>Your Page Title</TITLE>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<LINK rel = STYLESHEET href = "http://domain.com/styles/my.css" Type = "text/css" >
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<META NAME = "Description" CONTENT = " Description of page">
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<META NAME = "Keywords" CONTENT = "keywords for page" >
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header2.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这里放置页面内容
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/footer.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
从上我们可以看出通过在页面中包含页眉和页脚可以大大减少站点更新的工作量。但是如果我们希望动态显示一些内容,例如页面的最后更新时间等该怎么办呢?没问题,我们可以把包含文件使用.html后缀保存,这样就可以在包含文件中调用其它的包含文件。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
File:给出到当前目录的相对路径,其中不能使用“../”,也不能使用绝对路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include file="header.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这就要求每一个目录中都包含一个header.html文件。当然,采用这样的方法并不比更新每一个页面简单多少,但是如果用户只更新一、两个文件的话还是很方便的。例如,如果我们不希望让一个对HTML不熟悉的人直接改动网站中的新闻页面的话,可以只让他更新一个单独的文本文件,然后再把该文件包含到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
3.Echo:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Echo命令可以显示以下各环境变量:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DOCUMENT_NAME:显示当前文档的名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DOCUMENT_NAME" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
index.html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DOCUMENT_URI" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
/YourDirectory/YourFilename.html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。如果使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
http://YourDomain<!--#echo var="DOCUMENT_URI" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符“”。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="QUERY_STRING_UNESCAPED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, the %d of %B, in the year %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DATE_LOCAL" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Saturday, the 15 of April, in the year 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DATE_GMT" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实用的一个功能,只要在HTML文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="LAST_MODIFIED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
CGI环境变量
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_SOFTWARE" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_NAME" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_PROTOCOL" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_PORT:显示服务器的响应端口。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_PORT" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REQUEST_METHOD" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_HOST:显示发出请求信息的客户端主机名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_HOST" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_ADDR:显示发出请求信息的客户端IP地址。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_ADDR" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AUTH_TYPE:显示用户身份的验证方法。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="AUTH_TYPE" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_USER" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
4.Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#fsize file="index_working.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
5.Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, the %d of %B, in the year %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod file="file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这里,我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。方法如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt=" %B %d, %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<A HREF="/directory/file.html">File</A>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod virtual="/directory/file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<A HREF="/another_directory/another_file.html">Another File</A>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod virtual="/another_directory/another_file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
File April 19, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Another File January 08, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
也许有的读者会认为两个链接就这么复杂,一点也不方便。其实,如果页面上有20个或者更多的链接,而且每个链接都定期更新的话,就可以看出使用flastmod显示修改日期的作用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
6.Exec
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Exec命令可以执行CGI脚本或者shell命令。使用方法如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Cgi:可以用来执行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#exec cgi="/cgi-bin/counter.pl" -->
非常全面的一个php技术网站,php 爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2000-05-28· 吕晓波·CPCW
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
你是否曾经或正在为如何能够在最短的时间内完成对一个包含上千个页面的网站的修改而苦恼?那么可以看一下本文的介绍,或许能够对你有所帮助。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
什么是SSI?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。本文将主要结合Apache服务器介绍SSI的使用方法。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如何启动SSI?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
在Apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用SSI的目录中创建.htaccess文件启动SSI。具体来说,过程如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
1.服务器配置文件
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户具有对服务器配置文件的访问权限,可以通过编辑文件access.conf和srm.conf启动SSI。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
首先使用Telnet远程登录服务器,找到配置文件的存放目录。一般来说,Apache服务器的配置文件都被保存在“/usr/local/etc/httpd/conf”目录下。使用任何一种文字编辑器打开文件srm.conf,找到以下几行:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# If you want to use server side includes, or CGI outside
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# scriptAliased directories, uncomment the following lines.
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
#AddType text/x-server-parsed-html .shtml
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
#AddType application/x-httpd-CGI .CGI
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
用户的配置文件中可能没有上述的注释指令行,但是只要找到以AddType开头的两行并且去掉每一行最前面的“#”符号即可。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
保存所做的修改,然后再打开文件access.conf。用户需要在文件中找到设置DocumentRoot(根文件)的部分。一般来说该段文本如下,但是不排除<Directory>和</Directory>标签之间还包含其它设置内容。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# This should be changed to whatever you set DocumentRoot to.
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<Directory /usr/local/etc/httpd/htdocs>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# This may also be "None", "All", or any combination of "Indexes",
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
# "Includes", or "FollowSymLinks"
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Options Indexes FollowSymLinks Includes
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
</Directory>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户不希望执行脚本或shell命令,可以在options选项行中加入关键字IncludesNOEXEC,这样可以允许SSI,但是不能执行CGI或脚本命令。(注:最新版本的Apache服务器只有一个配置文件httpd.conf,以上所提到的内容都已经被包含在该文件中)
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2.创建文件.htaccess
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
如果用户不能直接访问服务器配置文件,可以使用文件编辑器创建一个名为.htaccess的文件。注意,文件名前一定要有符号“.”,这样服务器才能知道该文件是隐藏文件,从而提高文件的安全性,避免错误操作。在.htaccess文件中需要加入以下三行文字:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Options Indexes FollowSymLinks Includes
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType application/x-httpd-CGI .CGI
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType text/x-server-parsed-html .shtml
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
完成之后可以把.htaccess文件上传到服务端的相应目录,该文件对所有子目录有效。如果用户希望在目录级上禁止CGI或shell命令,可以在.htaccess文件中的Options选项行加入关键字IncludesNOEXEC。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
3.使用.shtml还是.html?
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
任何包含SSI的文件在下传到客户端之前,都必须经过服务器的解析过程。虽然从某种程度上这样会增加服务器的负载,但是除非用户的网站每天有几百万的访问用户,某则服务器的性能不会有明显的下降。不过,如果不是需要在每个页面都使用SSI的话,确实没有必要让服务器解析每一个页面。如果用户只希望在几个特殊页面中使用SSI,可以将文件的后缀名改为.shtml,这样服务器就可以只解析包含SSI的.shtml文件。另一方面,如果有多个页面使用了SSI,但是用户不希望使用.shtml的后缀名时,可以在.htaccess文件中使用以下命令行:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AddType text/x-server-parsed-html .html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI语法
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI在使用时遵循以下格式:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#directive parameter="value"-->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
其中,directive是向服务器发送的指令名称,parameter是指令的操作对象,而value则是用户希望得到的指令处理结果。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
所有的SSI命令都是以“<!--#”开始,其中“<!—”和“#”之间不能有任何空格,否则服务器会把SSI命令当称普通的文件注释处理,不会显示出任何结果,也不会产生错误提示。此外,SSI命令中的“=”两边不能有空格,右边的值必须包含在双引号内,后面可以跟空格,最后是结束标签“-->”。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SSI命令包含六大类指令以及各自的参数,具体如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
directives parameters
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Config errmsg, timefmt, sizefmt
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
include virtual, file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
echo var
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
fsize file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
flastmod file
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
exec cmd, cgi
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
下面我们将逐一进行介绍。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
1.Config命令
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Config命令主要用于修改SSI的默认设置。其中:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config errmsg="Error! Please email [email protected] -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Timefmt:定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, %B %d, %Y"-->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="LAST_MODIFIED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Wednesday, April 12, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
格式 说明 实例
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%% %
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%a 一周七天的缩写形式 Thu
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%A 一周七天 Thursday
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%b 月的缩写形式 Apr
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%B 月 April
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%d 一个月内的第几天 13
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%D mm/dd/yy日期格式 04/13/00
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%H 小时(24小时制,从00到23) 01
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%I 小时(12小时制,从00到11) 01
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%j 一年内的第几天,从01到365 104
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%m 一年内的第几个月,从01到12 04
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%M 一小时内的第几分钟,从00到59 10
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%p AM或PM AM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%r 12小时制的当地时间,格式为 01:10:18 AM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%I:%M:%S AM | PM
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%S 一分钟内的第几秒,从00到59 18
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%T 24小时制的%H:%M:%S时间格式 01:10:18
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%U 一年内的第几个星期,从00到 15
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
52,以星期天作为每个星期的
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
第一天
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%w 一星期内的第一天,从0到6 4
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%W 一年内的第几个星期,从00 15
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
到53,以星期一作为每个星期
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
的第一天
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%y 年的缩写形式,从00到99 00
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%Y 用四位数字表示一年 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
%Z 时区名称 MDT
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为“bytes”;对于千字节和兆字节可以使用缩写形式。同样,sizefmt参数必须放在fsize命令的前面才能使用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config sizefmt="bytes" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#fsize file="index.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
2.Include命令
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Include命令具有两个不同的参数,如果使用错误的参数更新站点的话,不仅达不到初衷,反而会得到一大堆的错误信息。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Virtual:给出到服务器端某个文档的虚拟路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
为了更加合理的组织站点的内容,用户可以在根目录下创建includes子目录来存放所有的包含文件。Virtual参数可以通知服务器所要包含的是一个虚拟文件,即文件和当前被解析的文档不是位于同一个目录,而是存放在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这种方法,用户可以把所有HTML文档包含的文件放在一个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。无论服务器解析哪一个文档都可以找到所包含的文件,不会产生任何错误。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
不过这里有一个小问题需要解决。一般我们都会在页面中加入一些TITLE和META标签,如果我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的问题时,可以使用两个包含文件,一个设置TITLE标签前的内容,另一个设置META标签后的部分,而在两个包含文件之间则可以添加任何定制内容。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header1.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<TITLE>Your Page Title</TITLE>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<LINK rel = STYLESHEET href = "http://domain.com/styles/my.css" Type = "text/css" >
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<META NAME = "Description" CONTENT = " Description of page">
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<META NAME = "Keywords" CONTENT = "keywords for page" >
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/header2.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这里放置页面内容
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include virtual="/includes/footer.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
从上我们可以看出通过在页面中包含页眉和页脚可以大大减少站点更新的工作量。但是如果我们希望动态显示一些内容,例如页面的最后更新时间等该怎么办呢?没问题,我们可以把包含文件使用.html后缀保存,这样就可以在包含文件中调用其它的包含文件。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
File:给出到当前目录的相对路径,其中不能使用“../”,也不能使用绝对路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#include file="header.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这就要求每一个目录中都包含一个header.html文件。当然,采用这样的方法并不比更新每一个页面简单多少,但是如果用户只更新一、两个文件的话还是很方便的。例如,如果我们不希望让一个对HTML不熟悉的人直接改动网站中的新闻页面的话,可以只让他更新一个单独的文本文件,然后再把该文件包含到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
3.Echo:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Echo命令可以显示以下各环境变量:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DOCUMENT_NAME:显示当前文档的名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DOCUMENT_NAME" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
index.html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DOCUMENT_URI" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
/YourDirectory/YourFilename.html
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。如果使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
http://YourDomain<!--#echo var="DOCUMENT_URI" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符“”。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="QUERY_STRING_UNESCAPED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, the %d of %B, in the year %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DATE_LOCAL" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Saturday, the 15 of April, in the year 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="DATE_GMT" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实用的一个功能,只要在HTML文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="LAST_MODIFIED" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
CGI环境变量
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_SOFTWARE" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_NAME" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_PROTOCOL" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
SERVER_PORT:显示服务器的响应端口。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="SERVER_PORT" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REQUEST_METHOD" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_HOST:显示发出请求信息的客户端主机名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_HOST" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_ADDR:显示发出请求信息的客户端IP地址。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_ADDR" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
AUTH_TYPE:显示用户身份的验证方法。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="AUTH_TYPE" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#echo var="REMOTE_USER" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
4.Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#fsize file="index_working.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
5.Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt="%A, the %d of %B, in the year %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod file="file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
这里,我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。方法如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#config timefmt=" %B %d, %Y" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<A HREF="/directory/file.html">File</A>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod virtual="/directory/file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<A HREF="/another_directory/another_file.html">Another File</A>
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#flastmod virtual="/another_directory/another_file.html" -->
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
显示结果为:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
File April 19, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Another File January 08, 2000
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
也许有的读者会认为两个链接就这么复杂,一点也不方便。其实,如果页面上有20个或者更多的链接,而且每个链接都定期更新的话,就可以看出使用flastmod显示修改日期的作用。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
6.Exec
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Exec命令可以执行CGI脚本或者shell命令。使用方法如下:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
Cgi:可以用来执行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器:
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
ww w.china it power.coJhgwWyQNNytkGcE7A2quHi8Ou
<!--#exec cgi="/cgi-bin/counter.pl" -->
非常全面的一个php技术网站,php 爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
相关阅读 更多 +