SSI使用说明文档.doc_第1页
SSI使用说明文档.doc_第2页
SSI使用说明文档.doc_第3页
SSI使用说明文档.doc_第4页
SSI使用说明文档.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、Apache中配置ssi 来源1:/s/blog_765941620100wiir.html来源2:/article.php?/1700(此处对SSI有详细介绍)(以下为总结的要点)官方参考文档:/docs/2.0/howto/ssi.html/docs/2.0/mod/mod_include.html/docs-project/参考网站:/Server/thread-53073-1-1.html/wenzhang/caozuoxitong/201009/198522.html/blog/static/105742350201051861034876/ /article/730.htm(介绍Apache Tomcat中SSI配置的详细方法)如何配置Apache支持SSI? Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例,打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,找到: # AddType text/html .shtml # AddOutputFilter INCLUDES .shtml 把这两行前面的#去掉 。 然后搜索“Options Indexes FollowSymLinks” 在搜索到的那一行后面添加“ Includes” 即将该行改变为 Options Indexes FollowSymLinks Includes (特别注意!该句应添加到你的应用目录或其父目录下,以下为笔者的配置)该配置在httpd-vhosts.conf文件中完成该配置表示只在D:/www及其子目录下应用SSI 熟悉apache manual的可能会觉得比较容易。 保存httpd.conf,重起apache即可 到此我们就完成了对Apache SSI的设置。 验证SSI配置成功 在服务器目录(即你自己刚刚配置的目录)上新建文件ssitest.shtml (特别说明:以下文字内容为原作者的内容,图片为笔者的测试内容!)文件内容为 echo元素仅仅是反馈一个变量的值。标准变量有许多,其中包含对CGI程序有效的所有的环境变量。另外,你也可以用set元素定义你的专用变量。 打开得到如下内容 Tuesday, 26-Aug-2008 10:25:53 中国标准时间 表示配置SSI成功,如果没有类似输出,请检查APACHE版本或者配置是否正确乱码问题:/z/q271973118.htm目前网上还没有解决方案。二、SSI常用配置来源:/article/730.htm1、服务器配置属性 在配置SSI Servlet的时候需要用到的参数(init parameters)如下: buffered:是需要将输入保存到缓冲区(0=false,1=true)默认是0(false); debue:配置调试日志的记录级别,默认0; expires:SSI包含某个页面的超时配置,默认行为是所有的SSI指令在每一次请求中执行; isVirtualWebappRelative:是针对Tomcat Context的根目录(虚拟目录)进行相对路径解析还是针对Tomcat的服务器目录进行相对路径解析(0=false,1=true)默认是0,不使用虚拟目录; inputEncoding:如果资源不是自身的,资源来自于容器外部,可以针对外部资源进行编码的设置,以什么变法方式输入资源,默认使用的是资源所在平台使用的编码; outputEncoding:SSI执行结果输出的编码方式,默认是UTF-8的。 配置SSI Filter的时候需要使用以下参数(init paramters): contextType:配置一个可以匹配的正则表达式规则提供给SSI执行使用,若自定义自己的匹配规则,需要在mime 类型里面配置下边的可选项:在form里面设置“mime/type;charset=set”默认的是“text/x-server-parsed-html(;.*)?” debug:同上 expires:同上 isVirtualWebappRelative:同上2、指令描述 SSI是被HTML文档内需要进行处理的包含部分的SSI Servlet调用的。这些指令是HTML文档的注释形式,这些指令在将内容发送到客户端之前进行内容的替换。标准格式如下: 这些指令包括: config:设置日期格式一起被SSI处理的其他数据() echo:将会被变量的值替换掉() exec:用来执行服务器端的命令 include:包含某些内容() flastmod:返回某个文件最后一次修改的时间() fsize:返回某个文件的大小() printenv:返回所有定义的变量() set:用来为定义的变量赋值() if elif endif else:创建条件分支语句 附件:Apache SSI官方文档 3、SSI Servlet里面的变量 AUTH_TYPE针对用户的认证授权方式:BASIC,FORM,etc.和Tomcat内的认证方式同步 CONTENT_LENGTH从服务器表单传过来的数据长度,字符数目或者数据的字节数 CONTENT_TYPE服务器访问呢数据的MIME类型,比如“text/html” DATE_GMT目前的时间格式方式使用GMT DATE_LOCAL目前的时间格式方式设置成为本地时间格式 DOCUMENT_NAME当前上下文环境的文件地址 DOCUMENT_URI虚拟路径定义的文件地址 GATEWAY_INTERFACECGI的版本定义:“CGI/1.1” HTTP_ACCEPT一个客户端可以接受的MIME类型列表 HTTP_ACCEPT_ENCODING客户端可以接受的压缩文件类型的列表 HTTP_ACCEPT_LANGUAGE客户端可以支持的语言列表 HTTP_CONNECTION管理客户端的连接:是“Close”还是“Keep-Alive” HTTP_HOST客户端请求的站点地址 HTTP_REFERER客户端请求之前所在的URL地址 HTTP_USER_AGENT客户使用的浏览器端的请求结果 LAST_MODIFIED当前页面上一次访问和修改的时间 PATH_INFO访问此Servlet的路径信息 PATH_TRANSLATEDPATH_INFO提供的translated版本 QUERY_STRING在URL地址?之后的请求参数列表 QUERY_STRING_UNESCAPED没有经过编码过的请求参数 REMOTE_ADDR用户请求客户端IP地址 REMOTE_HOST用户发送请求的主机名 REMOTE_PORT用户发送请求的端口号 REMOTE_USER认证授权需要的发送请求的用户名 REQUEST_METHOD请求使用方法:GET或者POST REQUEST_URI客户端原来访问请求的Web页面的URI地址 SCRIPT_FILENAME在服务器上当前页面的地址 SCRIPT_NAME当前页面的名称 SERVER_ADDR服务器所在的IP地址 SERVER_NAME服务器的主机名或者IP地址 SERVER_PORT服务器接受请求的端口号 SERVER_PROTOCOL服务器处理请求的协议:“HTTP/1.1” SERVER_SOFTWARE服务器响应客户端请求的名称和版本号 UNIQUE_ID一旦创建链接过后每一次会话由服务器分配的唯一会话标识(是不是SessionID?我不敢肯定,因为没有做过验证,有可能是有可能不是,不过有一点,此属性和直接和会话相关的。)三应用案例:來源: /article.php?/1700设置变量 使用set指令可以设置变量以备后用,其语法是: 除了设置文字变量以外,还可以设置其他任何变量,比如环境变量和此前提到过的一些变量(如LAST_MODIFIED),作为你的专用变量。在变量名前面缀以$,表示它是一个变量,而不是一个文字性字串。 在文字性字串中使用$,必须使用转义符号 最后,如果要在较长的字串中,可以用花括号把变量名括起来,以免变量名与其他字符之间冲突而产生混淆(要对这种情况举例说明有点难度,但还是希望你能领会)。 条件表达式 有了变量,就可以设置和比较它们的值以表示条件,SSI也因此成为一种简洁的编程语言。mod_include提供了if, elif, else和endif等结构以构造条件语句,从而对一个实在的页面高效地生成多个逻辑的页面。条件的结构如下: test_condition可以是任何逻辑比较 - 可以是一个值和另一个值比较,也可以是测试一个特定的值是否为“真”(一个给定的字串如果非空则为真)。完整的比较操作符列表,见mod_include。以下是可能会用到的一些例子。在配置文件中,可以这样设置:BrowserMatchNoCase macintosh MacBrowserMatchNoCase MSIE InternetExplorer 如果客户端在Macintosh上运行Internet Explorer,则上例设置环境变量Mac 和InternetExplorer为真。然后,在允许SSI的文档中,可以这样设置:Apologetic text goes hereCool JavaScript code goes here 我一点也不反对在Mac上运行IE - 只是上个星期我花了好几个小时试图在Mac上的IE中使用JavaScript,而它在其他地方都能正常运作,以上只是一个临时的妥协方案。任何其他变量(或者是你定义的,或者是标准的环境变量)都可以用于条件语句。利用Apache的SetEnvIf以及其他相关指令设置环境变量,此功能可以很好地实现动态页面而无须借助于CGI。正则表达式说明:此例表示从参数中提取子字符串。$QUERY_STRING 是环境变量,表示通过网页 URL 传递过来的参数,例如:http:/www.IBM.com/index.html?sid=safsaf43513sadfz&cntry=cn其中,问号后面的部分就是 $QUERY_STRING 的值。如果右边的比较部分是 / 这种形式,则表示,这部分是正则表达式,斜杠 / 就是表达式的开始和结束。斜杠中间的部分是具体的表达式。这一行表示,如果 URL 参数中包含有 RE 所匹配的字符,则 if 语句成立,继续执行此行下面的语句。sid=(a-zA-Z0-9+) 符号表示匹配字符串的开头,就是说,要匹配的字符串必须是 “sid=” 开头;括号表示分组,用圆括号分组的同时,程序自动会将圆括号内匹配的部分提取出来保存在 $1 这个变量中;这个 $1 是系统变量,用来保存正则表达式分组提取出来的各个部分值,一共有 9个,$1-$9。中括号 表示里面字符串中的任意一个或多个,a-z 表示 26个小写字母,同理 A-Z,0-9 等。后面的 + 加号表示 + 前面的字符可以有 1个以上(至少有一个)。http:/www.IBM.com/index.html?sid=safsaf43513sadfz&cntry=cn由此,这个例子中,匹配正则表达式的字符串是:“sid=safsaf43513sadfz”。& 号用来连接多个参数,因为 & 符号并没有包含在 a-zA-Z0-9 的范围内,所以 & 后面的字符串部分就不算匹配的部分。此行表示设置一个变量 session,变量值为正则表达式中匹配的圆括号包含的部分字符,因此等于 “safsaf43513sadfz”。我们可以用这种方法来出来传过来的参数,而不需要其他后台程序的支持,简单的需求,使用 SSI 就可以处理,既简单又减少了服务器的负载。注意:1. 在结尾符号“-”的前面需要有一个空格,是不能丢掉的,曾经在一个复杂的页面中遇到一个问题是因为没有加上那个空格引起的,因为很多时候容易忽略到这个小问题,而往往最难纠错的就是这些小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论