SSI简介

Google 的 Reply 中提到的东西,搜索看了一下,原来是知道的:

引用自
什么是SSI?
SSI直译服务器端包含(Server Side Includes),由字面上看由WEB在服务器提供的一种功能,并且是在服务器端进行的。一般说来,要完成较复杂的任务(如:聊天室/留言本等),必须设计专门的CGI或ASP程序;但是如果只是想给网页加上简单的功能(如:显示一篇文档,web服务器环境变量,关于该文档的更新日期/大小等),则只要SSI就可以完成了。SSI则是直接由服务器解释执行的,须要WEB服务器软件支持SSI。
而且,由于直接在服务器端执行SSI,产生相应HTML代码;所以对客户端没有限制,不会产生因为不同浏览器而产生不同的观看效果。

SSI有什么用?
目前,主要有以下几种用用途:
1、 显示服务器端环境变量<#echo>
2、 将文本内容直接插入到文档中<#include>

3、 显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、 直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
5、 设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句。

使用SSI很容易吧?
SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:
<!–#include file="info.htm"–>
就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。
其它的SSI指令使用形式基本同刚才的举例差不多,可见SSI使用只是插入一点代码而已,使用形式非常简单。
当然,如果WEB服务器不支持SSI,它就会只不过将它当作注释信息,直接跳过其中的内容;浏览器也会忽略这些信息。

1.#echo 示范

作用:

将环境变量插入到页面中。

语法:

<!–#echo var=”变量名称”–>

示例:

本文档名称:<!–#echo var=”DOCUMENT_NAME”–>

现在时间:<!–#echo var=”DATE_LOCAL”–>
你的IP地址是:<!–#echo var=”REMOTE_ADDR”–>

可在SSI中使用的变量: 1.只有SSI中能使用的变量。2.标准CGI变量3.某些服务器支持的变量

①下面是在标准SSI支持的变量:

———————-

2、#include 示范

作用:

将文本文件的内容直接插入到文档页面中。

语法:
<!–#include file=”文件名称”–>

<!–#include virtual=”文件名称”–>

file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的nav_head.htm文档,则为file=”nav_head.htm”。

virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的nav_head.htm文件;则为file=”/hoyi/nav_head.htm”

参数:

file 指定包含文件相对于本文档的位置

virtual 指定相对于服务器文档根目录的位置

注意:

1、文件名称必须带有扩展名。

2、被包含的文件可以具有任何文件扩展名,我觉得直接使用htm扩展名最方便,微软公司推荐使用 .inc 扩展名(这就看你的爱好了)。

示例:

<!–#include file=”nav_head.htm”–>将头文件插入到当前页面

<!–#include file=”nav_foot.htm”–>将尾文件插入到当前页面
————————–
4.#exec 示范

作用:

将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi。

语法:

语法:
<!–#exec cmd=”文件名称”–>

<!–#exec cgi=”文件名称”–>

参数:

cmd 常规应用程序

cgi CGI脚本程序

示例:

<!–#exec cmd=”cat /etc/passwd”–>将会显示密码文件

<!–#exec cmd=”dir /b”–>将会显示当前目录下文件列表

 

<!–#exec cgi=”/cgi-bin/gb.cgi”–>将会执行CGI程序gb.cgi。

<!–#exec cgi=”/cgi-bin/access_log.cgi”–>将会执行CGI程序access_log.cgi。

注意:

从上面的示例可以看出,这个指令相当方便,但是也存在安全问题。

禁止方法:

.Apache,将access.conf中的”Options Includes ExecCGI”这行代码删除;

.在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 元数据库;[/quote]


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注