网站包含功能Apache SSI 教程.docx
《网站包含功能Apache SSI 教程.docx》由会员分享,可在线阅读,更多相关《网站包含功能Apache SSI 教程.docx(24页珍藏版)》请在冰点文库上搜索。
网站包含功能ApacheSSI教程
ApacheSSI教程
本文参照的系统环境:
●WindowsXPSP2
●ApacheHTTPServerv2.0.55(Win32)
什么是SSI?
SSI(ServerSideIncludes),是嵌套在HTML网页中的指示语句,由后台服务器进行代码的解释计算。
使用SSI可以动态的创建一部分网页内容而不需要编写复杂的JSP/ASP/PHP等程序。
SSI是如此的小巧以至于不应算作一门语言,因为他远没有JSP/ASP/PHP等程序那么复杂,只有一些极其有限的语法规则。
但就算是只有这有限的一点语法规则,只要开动起你创新的思维,仍然可以“小才大用”,为你带来效率的提高、体力的节省和脑力的放松
很多HTTPServer程序都支持SSI,可能语法稍有不同,比如:
IIS/NovellHTTPServer等等,大同小异,本文要说明的是Apache2.0的SSI。
闲话少说,我想告诉大家的是,这是一篇实践经验总结性的文章,后文中的示例解决方案都是来自实际的网站应用中。
其中的一些想法和概念会给你带来提示性的参考或者直接拿为所用。
下图展示了SSI被服务器解释,生成最终的纯HTML网页后,再发送给访问者浏览的过程:
图1
系统环境安装
这不是一篇教你如何配置Apache的文章,但为了在你在本地系统环境测试的方便,还是简单的说明一下。
首先可以到http:
//www.apache.org/网站去下载一份最新的Apache安装文件,安装之后是否要做其他设置请自行参考相关资料,这里只说明如何开启SSI支持的步骤。
我在本地创建了一个bnn的文件夹,设成虚拟目录,然后就可以通过浏览器访问:
http:
//localhost/bnn/
打开Apache的配置文件,例如:
C:
\ProgramFiles\ApacheGroup\Apache2\conf\httpd.conf
然后加入类似下面的这段代码(主要是中间的三行):
黑体字部分是文件夹路径。
/Works/Jan-Boy/bnn">
AddTypetext/html.ssi
OptionsIncludes
AddOutputFilterByTypeINCLUDES;DEFLATEtext/html
OK,“Restart”ApacheServer(如果右下角系统栏中有apache小图标,则左键点击选择Restart;也可以在“开始->程序”菜单的Apache项下面找到Restart命令;还可以直接在安装目录运行C:
\ProgramFiles\ApacheGroup\Apache2\bin\ApacheMonitor.exe后点击Restart按钮)。
测试SSI是否已经打开,在bnn文件夹下面新建一个index.html文件,打开后在里面写上:
--#echovar="DATE_LOCAL"-->
保存关闭,然后打开浏览器测试:
http:
//localhost/bnn/
如果正确的显示出类似“Wednesday,01-Mar-200602:
03:
06ChinaStandardTime”这样的文字就表示SSI开启成功!
“呼~~”深呼一口气,搞掂,收工!
开始SSI
参考资源
在正式开始之前,先介绍两个官方参考文档:
ApacheTutorial:
IntroductiontoServerSideIncludes
http:
//httpd.apache.org/docs/2.0/howto/ssi.html
ApacheModulemod_include
http:
//httpd.apache.org/docs/2.0/mod/mod_include.html
这些文档在Apache的安装文件夹中可以找到,然后通过HTTP进行访问,并提供多国语言版本,不过没有中文(已经习惯了,谁让CN常常是被忽视的小弱国呢~,不过似乎网上流传了英雄好汉们翻译过的部分内容)。
在官方网站上可以找到最新版的文档(包括更新测试版的文档):
http:
//httpd.apache.org/docs-project/
SSI语法
SSI指令的语法格式:
--#elementattribute=valueattribute=value...-->
举几个实际例子:
http:
//
--#echovar=”SERVER_NAME”var=”DOCUMENT_URI”-->
--#includevirtual=”ssi/footer.ssi”-->
--#setvar=”Protocol”value=”http”-->
SSI语句是直接嵌套在HTML页面中的,可以放置在任意的位置。
所以SSI语句前后采用HTML注释的写法,这样一旦服务器关闭了对SSI的支持,此时访问页面的话,也不会直接在网页上显示出不必要的代码。
参见语法格式图示:
图2
注意:
1.在结尾符号“-->”的前面需要有一个空格,是不能丢掉的,曾经在一个复杂的页面中遇到一个问题是因为没有加上那个空格引起的,因为很多时候容易忽略到这个小问题,而往往最难纠错的就是这些小问题引起。
2.SSI不区分大小写,包括元素名称、变量名称,大写和小写都是允许的。
良好的书写格式可以帮助你更好的调试代码,清晰易查找,特别是在写非常复杂的SSI的时候,因为没有软件工具可以自动对SSI语句进行排版(因为大多数工具会把SSI语句当作普通的HTML注释处理,Dreamweaver只能识别include元素的SSI指令语句),所以就需要在书写的时候自己整理代码,养成良好习惯,注意大小写和上下文的缩进关系等。
书写格式的约定(推荐格式,并非强制):
●元素和属性使用小写字母;
●环境变量都使用大写字母;
●合理的缩进,在使用if语句嵌套的时候推荐使用1tab(占4space)缩进,以变更清晰的显示层次关系。
SSI使用
对于SSI具体的使用是否有些不清楚呢?
下面列出一份完整的示例代码:
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
LearningApacheSSI
--#includevirtual="/bnn/ssi/header.ssi"-->
LeftNavigation