<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>成刚网志 &amp;amp;&amp;amp; CBolg Application</title>
<link>http://www.chenggang.net</link>
<description><![CDATA[记录我的网事历程，架起沟通的桥梁！欢迎留言！
]]></description>
<lastBuildDate>Sun, 20 May 2012 22:43:39 +0800</lastBuildDate>
<copyright>Copyright &amp;copy; 2012 by CBolg Application.</copyright>
<language>zh-cn</language>
<pubDate>Mon, 21 May 2012 14:25:55 +0800</pubDate>
<item>
<title>shtml</title>
<summary><![CDATA[SSI有什么用?之所以要扯到ssi，是因为shtml--server-parsedHTML的首字母缩略词。包含有嵌入式服务器方包含命令的HTML文本。在被传送给浏览器之前，服务器会对SHTML文档进行完全地读取、分析以及修改。shtml和asp有一些相]]></summary>
<description><![CDATA[<p>
	SSI有什么用?<br />
	<br />
	之所以要扯到ssi，是因为shtml--server-parsed HTML 的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前，服务器会对 SHTML 文档进行完全地读取、分析以及修改。<br />
	<br />
	shtml 和asp 有一些相似，以shtml命名的文件里，使用了ssi的一些指令，就像asp中的指令，你可以在SHTML文件中写入SSI指令，当客户端访问这些 shtml文件时，服务器端会把这些SHTML文件进行读取和解释，把SHTML文件中包含的SSI指令解释出来<br />
	<br />
	比如：你可以在 SHTML文件中用SSI指令引用其他的html文件（#include ），服务器传送给客户端的文件，是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能，就是可以实现了动态的SHTML，可以说是 HTML的一种进化吧。像新浪的新闻系统就是这样的，新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。<br />
	<br />
	目前，主要有以下几种用用途：<br />
	<br />
	1、显示服务器端环境变量&lt;#echo&gt;<br />
	<br />
	2、将文本内容直接插入到文档中&lt;#include&gt;<br />
	<br />
	3、显示WEB文档相关信息&lt;#flastmod #fsize&gt; (如文件制作日期/大小等)<br />
	<br />
	4、直接执行服务器上的各种程序&lt;#exec&gt;(如CGI或其他可执行程序)<br />
	<br />
	5、设置SSI信息显示格式&lt;#config&gt;(如文件制作日期/大小显示方式) 高级SSI&lt;XSSI&gt;可设置变量使用if条件语句。<br />
	<br />
	使用SSI<br />
	<br />
	SSI是为WEB服务器提供的一套命令，这些命令只要直接嵌入到HTML文档的注释内容之中即可。如：<br />
	<br />
	&lt;!--#include file=&quot;info.htm&quot;--&gt;<br />
	<br />
	就是一条SSI指令，其作用是将&quot;info.htm&quot;的内容拷贝到当前的页面中，当访问者来浏览时，会看到其它HTML文档一样显示info.htm其中的内容。<br />
	<br />
	其它的SSI指令使用形式基本同刚才的举例差不多，可见SSI使用只是插入一点代码而已，使用形式非常简单。<br />
	<br />
	当然，如果WEB服务器不支持SSI，它就会只不过将它当作注释信息，直接跳过其中的内容；浏览器也会忽略这些信息。<br />
	<br />
	如何在我的WEB服务器上配置SSI功能？<br />
	<br />
	在一些WEB服务器上（如IIS 4.0/SAMBAR 4.2），包含 #include 指令的文件必须使用已被映射到 SSI 解释程序的扩展名；否则，Web 服务器将不会处理该SSI指令；默认情况下，扩展名 .stm、.shtm 和 .shtml 被映射到解释程序（Ssinc.dll）。<br />
	<br />
	Apache则是根据你的设置情况而定，修改srm.conf如：<br />
	<br />
	AddType text/x-server-parsed-html .shtml 将只对.shtml扩展名的文件解析SSI指令<br />
	<br />
	AddType text/x-server-parsed-html .html将对所有HTML文档解析SSI指令<br />
	<br />
	Netscape WEB服务器直接使用Administration Server(管理服务器)可打开SSI功能。<br />
	<br />
	Website使用Server Admin程序中的Mapping标签，扩展名添加内容类型为：wwwserver/html-ssi<br />
	<br />
	Cern服务器不支持SSI，可用SSI诈骗法，到http://sw.cse.bris.ac.uk/WebTools/fakessi.html ;上下载一个PERL脚本，即可使你的CERN服务器使用一些SSI指令。（不支持exec指令。）<br />
	<br />
	SSI指令基本格式<br />
	<br />
	SSI指令基本格式：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!-&ndash; 指令名称=&quot;指令参数&quot;&gt;<br />
	<br />
	&lt;!-&ndash; 指令名称=&quot;指令参数&quot;&gt;<br />
	<br />
	如 程序代码:<br />
	<br />
	&lt;!--#include file=&quot;info.htm&quot;--&gt;<br />
	<br />
	&lt;!--#include file=&quot;info.htm&quot;--&gt;<br />
	<br />
	说明:<br />
	<br />
	1．&lt;!-- --&gt;是HTML语法中表示注释，当WEB服务器不支持SSI时，会忽略这些信息。<br />
	<br />
	2．#include 为SSI指令之一。<br />
	<br />
	3．file 为include的参数, info.htm为参数值，在本指令中指将要包含的文档名。<br />
	<br />
	注意:<br />
	<br />
	1．&lt;!--与#号间无空格，只有SSI指令与参数间存在空格。<br />
	<br />
	2．上面的标点=&quot;&quot;，一个也不能少。<br />
	<br />
	3．SSI指令是大小写敏感的，因此参数必须是小写才会起作用。<br />
	<br />
	SSI指令使用详解<br />
	<br />
	#echo 示范<br />
	<br />
	作用：<br />
	<br />
	将环境变量插入到页面中。<br />
	<br />
	语法：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#echo var=&quot;变量名称&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;变量名称&quot;--&gt;<br />
	<br />
	本文档名称：程序代码:<br />
	<br />
	&lt;!--#echo var=&quot;DOCUMENT_NAME&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DOCUMENT_NAME&quot;--&gt;<br />
	<br />
	现在时间：程序代码:<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt;<br />
	<br />
	你的IP地址是程序代码:<br />
	<br />
	&lt;!--#echo var=&quot;REMOTE_ADDR&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;REMOTE_ADDR&quot;--&gt;<br />
	<br />
	#include 示范<br />
	<br />
	作用：<br />
	<br />
	将文本文件的内容直接插入到文档页面中。<br />
	<br />
	语法：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#include file=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#include virtual=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#include file=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#include virtual=&quot;文件名称&quot;--&gt;<br />
	<br />
	file 文件名是一个相对路径，该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中，但不能在上一级目录中。如表示当前目录下的的nav_head.htm文档，则为file=&quot;nav_head.htm&quot;。<br />
	<br />
	virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的nav_head.htm文件；则为virtual=&quot;/hoyi/nav_head.htm&quot;<br />
	<br />
	参数：<br />
	<br />
	file 指定包含文件相对于本文档的位置<br />
	<br />
	virtual 指定相对于服务器文档根目录的位置<br />
	<br />
	注意：<br />
	<br />
	1、文件名称必须带有扩展名。<br />
	<br />
	2、被包含的文件可以具有任何文件扩展名，我觉得直接使用htm扩展名最方便，微软公司推荐使用 .inc 扩展名（这就看你的爱好了）。<br />
	<br />
	示例：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#include file=&quot;nav_head.htm&quot;--&gt;将头文件插入到当前页面<br />
	<br />
	&lt;!--#include file=&quot;nav_foot.htm&quot;--&gt;将尾文件插入到当前页面<br />
	<br />
	&lt;!--#include file=&quot;nav_head.htm&quot;--&gt;将头文件插入到当前页面<br />
	<br />
	&lt;!--#include file=&quot;nav_foot.htm&quot;--&gt;将尾文件插入到当前页面<br />
	<br />
	#flastmod 和#fsize 示范<br />
	<br />
	作用： #flastmod 文件最近更新日期<br />
	<br />
	#fsize 文件的长度<br />
	<br />
	语法：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#flastmod file=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#flastmod file=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;文件名称&quot;--&gt;<br />
	<br />
	参数：<br />
	<br />
	file 指定包含文件相对于本文档的位置 如 info.txt 表示当前目录下的的info.txt文档<br />
	<br />
	virtual 指定相对于服务器文档根目录的位置 如 /hoyi/info.txt 表示<br />
	<br />
	注意：<br />
	<br />
	文件名称必须带有扩展名。<br />
	<br />
	示例：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#flastmod file=&quot;news.htm&quot;--&gt;<br />
	<br />
	&lt;!--#flastmod file=&quot;news.htm&quot;--&gt;<br />
	<br />
	将当前目录下news.htm文件的最近更新日期插插入到当前页面<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#fsize file=&quot;news.htm&quot;--&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;news.htm&quot;--&gt;<br />
	<br />
	将当前目录下news.htm的文件大小入到当前页面<br />
	<br />
	#exec 示范<br />
	<br />
	作用：<br />
	<br />
	将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入，这取决于使用的参数是cmd还是cgi。<br />
	<br />
	语法：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#exec cmd=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#exec cgi=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#exec cmd=&quot;文件名称&quot;--&gt;<br />
	<br />
	&lt;!--#exec cgi=&quot;文件名称&quot;--&gt;<br />
	<br />
	参数：<br />
	<br />
	cmd 常规应用程序<br />
	<br />
	cgi CGI脚本程序<br />
	<br />
	示例：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#exec cmd=&quot;cat /etc/passwd&quot;--&gt;将会显示密码文件<br />
	<br />
	&lt;!--#exec cmd=&quot;dir /b&quot;--&gt;将会显示当前目录下文件列表<br />
	<br />
	&lt;!--#exec cgi=&quot;/cgi-bin/gb.cgi&quot;--&gt;将会执行CGI程序gb.cgi。<br />
	<br />
	&lt;!--#exec cgi=&quot;/cgi-bin/access_log.cgi&quot;--&gt;将会执行CGI程序access_log.cgi。<br />
	<br />
	&lt;!--#exec cmd=&quot;cat /etc/passwd&quot;--&gt;将会显示密码文件<br />
	<br />
	&lt;!--#exec cmd=&quot;dir /b&quot;--&gt;将会显示当前目录下文件列表<br />
	<br />
	&lt;!--#exec cgi=&quot;/cgi-bin/gb.cgi&quot;--&gt;将会执行CGI程序gb.cgi。<br />
	<br />
	&lt;!--#exec cgi=&quot;/cgi-bin/access_log.cgi&quot;--&gt;将会执行CGI程序access_log.cgi。<br />
	<br />
	注意：<br />
	<br />
	从上面的示例可以看出，这个指令相当方便，但是也存在安全问题。<br />
	<br />
	禁止方法：<br />
	<br />
	．Apache，将access.conf中的&quot;Options Includes ExecCGI&quot;这行代码删除；<br />
	<br />
	．在IIS中，要禁用 #exec 命令，可修改 SSIExecDisable 元数据库；<br />
	<br />
	#config<br />
	<br />
	作用： 指定返回给客户端浏览器的错误信息、日期和文件大小的格式。<br />
	<br />
	语法：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#config errmsg=&quot;自定义错误信息&quot;--&gt;<br />
	<br />
	&lt;!--#config sizefmt=&quot;显示单位&quot;--&gt;<br />
	<br />
	&lt;!--#config timefmt=&quot;显示格式&quot;--&gt;<br />
	<br />
	&lt;!--#config errmsg=&quot;自定义错误信息&quot;--&gt;<br />
	<br />
	&lt;!--#config sizefmt=&quot;显示单位&quot;--&gt;<br />
	<br />
	&lt;!--#config timefmt=&quot;显示格式&quot;--&gt;<br />
	<br />
	参数：<br />
	<br />
	errmsg 自定义SSI执行错误信息，可以为任何你喜欢的方式。<br />
	<br />
	sizefmt 文件大小显示方式，默认为字节方式(&quot;bytes&quot;)可以改为千字节方式(&quot;abbrev&quot;)<br />
	<br />
	timefmt 时间显示方式，最灵活的配置属性。<br />
	<br />
	示例： 显示一个不存在文件的大小<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#config errmsg=&quot;服务器执行错误，请联系管理员 yiho@126.com，谢谢！&quot;--&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;不存在的文件.htm&quot;--&gt;<br />
	<br />
	&lt;!--#config errmsg=&quot;服务器执行错误，请联系管理员 yiho@126.com，谢谢！&quot;--&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;不存在的文件.htm&quot;--&gt;<br />
	<br />
	以千字节方式显示文件大小<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#config sizefmt=&quot;abbrev&quot;--&gt;<br />
	<br />
	&lt;!--#fsizefile=&quot;news.htm&quot;--&gt;<br />
	<br />
	&lt;!--#config sizefmt=&quot;abbrev&quot;--&gt;<br />
	<br />
	&lt;!--#fsizefile=&quot;news.htm&quot;--&gt;<br />
	<br />
	以特定的时间格式显示时间<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#config timefmt=&quot;%Y年/%m月%d日 星期%W 北京时间%H:%M:%s，%Y年已过去了%j天 今天是%Y年的第%U个星期&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt; 显示今天是星期几,几月,时区<br />
	<br />
	&lt;!--#config timefmt=&quot;今天%A, %B ,服务器时区是 %z，是&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt;<br />
	<br />
	&lt;!--#config timefmt=&quot;%Y年/%m月%d日 星期%W 北京时间%H:%M:%s，%Y年已过去了%j天 今天是%Y年的第%U个星期&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt; 显示今天是星期几,几月,时区<br />
	<br />
	&lt;!--#config timefmt=&quot;今天%A, %B ,服务器时区是 %z，是&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot;--&gt;<br />
	<br />
	XSSI<br />
	<br />
	XSSI（Extended SSI）是一组高级SSI指令，内置于Apache 1.2或更高版本的mod-include模块之中。<br />
	<br />
	其中可利用的的指令有：<br />
	<br />
	#printenv<br />
	<br />
	#set<br />
	<br />
	#if<br />
	<br />
	#printenv<br />
	<br />
	作用： 显示当前存在于WEB服务器环境中的所有环境变量。<br />
	<br />
	语法：程序代码:<br />
	<br />
	&lt;!--#printenv--&gt;<br />
	<br />
	&lt;!--#printenv--&gt;<br />
	<br />
	&lt;!--#printenv--&gt;<br />
	<br />
	&lt;!--#printenv--&gt;<br />
	<br />
	#set<br />
	<br />
	作用：可给变量赋值，以用于后面的if语句。<br />
	<br />
	语法：程序代码:<br />
	<br />
	&lt;!--#set var=&quot;变量名&quot;value=&quot;变量值&quot;--&gt;<br />
	<br />
	&lt;!--#set var=&quot;变量名&quot;value=&quot;变量值&quot;--&gt;<br />
	<br />
	参数：无<br />
	<br />
	示例： 程序代码:<br />
	<br />
	&lt;!--#set var=&quot;color&quot;value=&quot;红色&quot;--&gt;<br />
	<br />
	&lt;!--#set var=&quot;color&quot;value=&quot;红色&quot;--&gt;<br />
	<br />
	#if<br />
	<br />
	作用： 创建可以改变数据的页面，这些数据根据使用if语句时计算的要求予以显示。<br />
	<br />
	语法： 程序代码:<br />
	<br />
	&lt;!--#if expr=&quot;$变量名=&quot;变量值A&quot;&quot;--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#elif expr=&quot;$变量名=&quot;变量值B&quot;&quot;--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#else--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#endif&quot;--&gt;<br />
	<br />
	&lt;!--#if expr=&quot;$变量名=&quot;变量值A&quot;&quot;--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#elif expr=&quot;$变量名=&quot;变量值B&quot;&quot;--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#else--&gt;<br />
	<br />
	显示内容<br />
	<br />
	&lt;!--#endif&quot;--&gt;<br />
	<br />
	示例：<br />
	<br />
	程序代码:<br />
	<br />
	&lt;!--#if expr=&quot;$SERVER_NAME=&quot;hoyi.zb169.net&quot;&quot;--&gt;<br />
	<br />
	欢迎光临好易CGI工厂在淄博热线的分站http://hoyi.zb169.net。<br />
	<br />
	&lt;!--#elif expr=&quot;$SERVER_NAME=&quot;linux.cqi.com.cn&quot;&quot; --&gt;<br />
	<br />
	欢迎光临好易CGI工厂在太阳城的分站http://linux.cqi.com.cn/~hoyi。<br />
	<br />
	&lt;!--#else--&gt;<br />
	<br />
	欢迎光临好易CGI工厂！<br />
	<br />
	&lt;!--#endif&quot;--&gt;<br />
	<br />
	&lt;!--#if expr=&quot;$SERVER_NAME=&quot;hoyi.zb169.net&quot;&quot;--&gt;<br />
	<br />
	欢迎光临好易CGI工厂在淄博热线的分站http://hoyi.zb169.net。<br />
	<br />
	&lt;!--#elif expr=&quot;$SERVER_NAME=&quot;linux.cqi.com.cn&quot;&quot; --&gt;<br />
	<br />
	欢迎光临好易CGI工厂在太阳城的分站http://linux.cqi.com.cn/~hoyi。<br />
	<br />
	&lt;!--#else--&gt;<br />
	<br />
	欢迎光临好易CGI工厂！<br />
	<br />
	&lt;!--#endif&quot;--&gt;<br />
	<br />
	注意： 用于前面指令中的反斜杠，是用来代换内部的引号，以便它们不会被解释为结束表达式。不可省略。<br />
	<br />
	1、Config命令<br />
	<br />
	Config命令主要用于修改SSI的默认设置。其中：<br />
	<br />
	Errmsg：设置默认错误信息。为了能够正常的返回用户设定的错误信息，在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面，否则客户端只能显示默认的错误信息，而不是由用户设定的自定义信息。<br />
	<br />
	&lt;!--#config errmsg=&quot;Error! Please email webmaster@mydomain.com --&gt;<br />
	<br />
	Timefmt：定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。<br />
	<br />
	&lt;!--#config timefmt=&quot;%A, %B %d, %Y&quot;--&gt;<br />
	<br />
	&lt;!--#echo var=&quot;LAST_MODIFIED&quot; --&gt;<br />
	<br />
	显示结果为：<br />
	<br />
	Wednesday, April 12, 2000<br />
	<br />
	也许用户对上例中所使用的%A %B %d感到很陌生，下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。<br />
	<br />
	Sizefmt：决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位，参数值为&quot;bytes&quot;；对于千字节和兆字节可以使用缩写形式。同样，sizefmt参数必须放在fsize命令的前面才能使用。<br />
	<br />
	&lt;!--#config sizefmt=&quot;bytes&quot; --&gt;<br />
	<br />
	&lt;!--#fsize file=&quot;index.html&quot; --&gt;<br />
	<br />
	2、Include命令<br />
	<br />
	Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中，这是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点！<br />
	<br />
	Include命令具有两个不同的参数：<br />
	<br />
	Virtual：给出到服务器端某个文档的虚拟路径。例如：<br />
	<br />
	&lt;!--#include virtual=&quot;/includes/header.html&quot; --&gt;<br />
	<br />
	File：给出到当前目录的相对路径，其中不能使用&quot;../&quot;，也不能使用绝对路径。例如：<br />
	<br />
	&lt;!--#include file=&quot;header.html&quot; --&gt;<br />
	<br />
	这就要求每一个目录中都包含一个header.html文件。<br />
	<br />
	3、Echo命令<br />
	<br />
	Echo命令可以显示以下各环境变量：<br />
	<br />
	DOCUMENT_NAME：显示当前文档的名称。<br />
	<br />
	&lt;!--#echo var=&quot;DOCUMENT_NAME&quot; --&gt;<br />
	<br />
	显示结果为：<br />
	<br />
	index.html<br />
	<br />
	DOCUMENT_URI：显示当前文档的虚拟路径。例如：<br />
	<br />
	&lt;!--#echo var=&quot;DOCUMENT_URI&quot; --&gt;<br />
	<br />
	显示结果为：<br />
	<br />
	/YourDirectory/YourFilename.html<br />
	<br />
	随着网站的不断发展，那些越来越长的URL地址肯定会让人头疼。如果使用SSI，一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL，即：<br />
	<br />
	http://YourDomain&lt;;!--#echo var=&quot;DOCUMENT_URI&quot; --&gt;<br />
	<br />
	QUERY_STRING_UNESCAPED：显示未经转义处理的由客户端发送的查询字串，其中所有的特殊字符前面都有转义符&quot;&quot;。例如：<br />
	<br />
	&lt;!--#echo var=&quot;QUERY_STRING_UNESCAPED&quot; --&gt;<br />
	<br />
	DATE_LOCAL：显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数，定制输出信息。例如：<br />
	<br />
	&lt;!--#config timefmt=&quot;%A, the %d of %B, in the year %Y&quot; --&gt;<br />
	<br />
	&lt;!--#echo var=&quot;DATE_LOCAL&quot; --&gt;<br />
	<br />
	显示结果为：<br />
	<br />
	Saturday, the 15 of April, in the year 2000<br />
	<br />
	DATE_GMT：功能与DATE_LOCAL一样，只不过返回的是以格林尼治标准时间为基准的日期。例如：<br />
	<br />
	&lt;!--#echo var=&quot;DATE_GMT&quot; --&gt;<br />
	<br />
	LAST_MODIFIED：显示当前文档的最后更新时间。同样，这是SSI中非常实用的一个功能，只要在HTML文档中加入以下这行简单的文字，就可以在页面上动态的显示更新时间。<br />
	<br />
	&lt;!--#echo var=&quot;LAST_MODIFIED&quot; --&gt;<br />
	<br />
	CGI环境变量<br />
	<br />
	除了SSI环境变量之外，echo命令还可以显示以下CGI环境变量：<br />
	<br />
	SERVER_SOFTWARE：显示服务器软件的名称和版本。例如：<br />
	<br />
	&lt;!--#echo var=&quot;SERVER_SOFTWARE&quot; --&gt;<br />
	<br />
	SERVER_NAME： 显示服务器的主机名称，DNS别名或IP地址。例如：<br />
	<br />
	&lt;!--#echo var=&quot;SERVER_NAME&quot; --&gt;<br />
	<br />
	SERVER_PROTOCOL：显示客户端请求所使用的协议名称和版本，如HTTP/1.0。例如：<br />
	<br />
	&lt;!--#echo var=&quot;SERVER_PROTOCOL&quot; --&gt;<br />
	<br />
	SERVER_PORT：显示服务器的响应端口。例如：<br />
	<br />
	&lt;!--#echo var=&quot;SERVER_PORT&quot; --&gt;<br />
	<br />
	REQUEST_METHOD：显示客户端的文档请求方法，包括GET, HEAD, 和POST。例如：<br />
	<br />
	&lt;!--#echo var=&quot;REQUEST_METHOD&quot; --&gt;<br />
	<br />
	REMOTE_HOST：显示发出请求信息的客户端主机名称。<br />
	<br />
	&lt;!--#echo var=&quot;REMOTE_HOST&quot; --&gt;<br />
	<br />
	REMOTE_ADDR：显示发出请求信息的客户端IP地址。<br />
	<br />
	&lt;!--#echo var=&quot;REMOTE_ADDR&quot; --&gt;<br />
	<br />
	AUTH_TYPE：显示用户身份的验证方法。<br />
	<br />
	&lt;!--#echo var=&quot;AUTH_TYPE&quot; --&gt;<br />
	<br />
	REMOTE_USER：显示访问受保护页面的用户所使用的帐号名称。<br />
	<br />
	&lt;!--#echo var=&quot;REMOTE_USER&quot; --&gt;<br />
	<br />
	4、Fsize：显示指定文件的大小，可以结合config命令的sizefmt参数定制输出格式。<br />
	<br />
	&lt;!--#fsize file=&quot;index_working.html&quot; --&gt;<br />
	<br />
	5、Flastmod：显示指定文件的最后修改日期，可以结合config 命令的timefmt参数控制输出格式。<br />
	<br />
	&lt;!--#config timefmt=&quot;%A, the %d of %B, in the year %Y&quot; --&gt;<br />
	<br />
	&lt;!--#flastmod file=&quot;file.html&quot; --&gt;<br />
	<br />
	这里，我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。方法如下：<br />
	<br />
	&lt;!--#config timefmt=&quot; %B %d, %Y&quot; --&gt;<br />
	<br />
	File<br />
	<br />
	&lt;!--#flastmod virtual=&quot;/directory/file.html&quot; --&gt;<br />
	<br />
	Another File<br />
	<br />
	&lt;!--#flastmod virtual=&quot;/another_directory/another_file.html&quot; --&gt;<br />
	<br />
	显示结果为：<br />
	<br />
	File April 19, 2000<br />
	<br />
	Another File January 08, 2000<br />
	<br />
	6、Exec<br />
	<br />
	Exec命令可以执行CGI脚本或者shell命令。使用方法如下：<br />
	<br />
	Cmd：使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项，则该命令将被屏蔽。<br />
	<br />
	Cgi：可以用来执行CGI脚本。例如，下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器?<br />
	<br />
	&lt;!--#exec cgi=&quot;/cgi-bin/counter.pl&quot; --&gt;<br />
	&nbsp;</p>
]]></description>
<link>http://www.chenggang.net/posts/22</link>
<pubDate>Wed, 10 Sep 2008 22:40:00 +0800</pubDate>
<author>小豆</author>
<category>DIV+CSS</category>
<guid isPermaLink="true">http://www.chenggang.nethttp://www.chenggang.net/posts/22</guid>
</item>
</channel></rss>
