使用SSI(
Server Side Include)的html文件扩展名(.shtml),通常称为"
服务器端嵌入"或者叫"
服务器端包含"。
SSI工作原理:内容发送到浏览器之前,可以使用" 服务器端包含(SSI)"指令将文本、图形或应用程序信息包含到网页中,例如,可以使用SSI包含时间/日期戳/版权声明,对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法,将内容存入一个包含文件中即可,而不必将内容输入所有文件,通过一个非常简单的语句即可调用包含文件,此语句指示Web服务器将内容插入适当网页,而且使用包含文件时,对内容的所有更改只需在一个地方就能完成。
因为包含SSI指令的文件要求特殊处理,所以必须为所有SSI文件赋予SSI文件扩展名,默认扩展名是 .stm、.shtm、.shtml。
Web服务器在处理网页的同时处理SSI指令,当Web服务器遇到SSI指令时,直接将包含文件的内容插入HTML网页,如果"包含文件"中包含SSI指令,则同时插入此文件,除了用于包含文件的基本指令之外,还可以使用 SSI 指令插入文件的相关信息(如文件的大小)或者运行应用程序或shell命令。
网站维护常常碰到的一个问题,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页,SSI提供了一种简单、有效的方法来解决这一问题,它将一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。
SSI作用:之所以要扯到SSI是因为Shtml-Server-Parsed HTML的首字母缩略词,包含有嵌入式服务器方包含命令的HTML文本,在被传送给浏览器之前,服务器会对SHTML文档进行完全地读取、分析以及修改,你可以在SHTML文件中写入SSI指令,比如:可以在SHTML文件中用SSI指令引用其他的html文件(#include),可以实现了动态的SHTML,是HTML的一种进化吧。
目前,主要有以下几种用用途:
显示服务器端环境变量<#echo>
将文本内容直接插入到文档中<#include>
显示WEB文档相关信息<#flastmod #fsize>(如文件制作日期/大小等)
直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句
SSI工作原理:内容发送到浏览器之前,可以使用" 服务器端包含(SSI)"指令将文本、图形或应用程序信息包含到网页中,例如,可以使用SSI包含时间/日期戳/版权声明,对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法,将内容存入一个包含文件中即可,而不必将内容输入所有文件,通过一个非常简单的语句即可调用包含文件,此语句指示Web服务器将内容插入适当网页,而且使用包含文件时,对内容的所有更改只需在一个地方就能完成。
因为包含SSI指令的文件要求特殊处理,所以必须为所有SSI文件赋予SSI文件扩展名,默认扩展名是 .stm、.shtm、.shtml。
Web服务器在处理网页的同时处理SSI指令,当Web服务器遇到SSI指令时,直接将包含文件的内容插入HTML网页,如果"包含文件"中包含SSI指令,则同时插入此文件,除了用于包含文件的基本指令之外,还可以使用 SSI 指令插入文件的相关信息(如文件的大小)或者运行应用程序或shell命令。
网站维护常常碰到的一个问题,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页,SSI提供了一种简单、有效的方法来解决这一问题,它将一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。
SSI作用:之所以要扯到SSI是因为Shtml-Server-Parsed HTML的首字母缩略词,包含有嵌入式服务器方包含命令的HTML文本,在被传送给浏览器之前,服务器会对SHTML文档进行完全地读取、分析以及修改,你可以在SHTML文件中写入SSI指令,比如:可以在SHTML文件中用SSI指令引用其他的html文件(#include),可以实现了动态的SHTML,是HTML的一种进化吧。
目前,主要有以下几种用用途:
显示服务器端环境变量<#echo>
将文本内容直接插入到文档中<#include>
显示WEB文档相关信息<#flastmod #fsize>(如文件制作日期/大小等)
直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句
Apache配置ssi功能
Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。
我这里以windows平台的Apache2.2.22为例,打开conf目录下的httpd.conf文件。
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
把这两句前面的"#"去掉,如果要使html也支持ssi可以改写成
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
并非所有文件中的ssi指令都会被解析,必须告诉Apache应该解析哪些文件,如果我们的指令放在了.htm类型的文件中,那么就需要在上面两条命令中分别加入.htm一项,否则便不会解析未指定的文件中的ssi命令,因为命令是放在注释中的,故不解析的将显示空。
#Options Indexes FollowSymLinks
把这句前的"#"去掉,改写成
Options Indexes FollowSymLinks Includes