Server Side Include( SSI )学习
来源:互联网 发布:toastr.js 编辑:程序博客网 时间:2024/05/01 17:54
“服务器端嵌入”或者叫“服务器端包含”: 将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中。
Web 服务器在处理网页的同时处理 SSI 指令。当 Web 服务器遇到 SSI 指令时,直接将包含文件的内容插入 HTML 网页。如果“包含文件”中包含 SSI 指令,则同时插入此文件。除了用于包含文件的基本指令之外,还可以使用 SSI 指令插入文件的相关信息(如文件的大小)或者运行应用程序或 shell 命令。
因为包含SSI 指令的文件要求特殊处理,所以必须为所有SSI文件赋予 SSI文件扩展名。默认扩展名是 .stm、.shtm和 .shtml。
目前,主要有以下几种用用途:
- 显示服务器端环境变量<#echo>
- 将文本内容直接插入到文档中<#include>
- 显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
- 直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
- 设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)。
使用SSI
SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:
<!--#includefile="info.htm"-->
就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容
使用SSI
在Apache server中配置SSI,可在httpd.conf中加入SSI支持。如选择CGI目录,则在cgi配置中加入以下:
<Directory"/opt/GUI/cgi-bin">
AddType text/html .ssi
Options Includes
AddOutputFilterByType INCLUDES;DEFLATEtext/html
</Directory>
然后,在该目录下的html文件中,即可添加SSI指令。
SSI指令基本格式
<!--指令名称="指令参数">
示例:
<!--#includefile="info.htm"-->
说明:
- <!-- -->是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。
- #include 为SSI指令之一。
- file 为include的参数, info.htm为参数值,在本指令中指将要包含的文档名。
注意:
- <!--与#号间无空格,只有SSI指令与参数间存在空格。
- 上面的标点="",一个也不能少。
- SSI指令是大小写敏感的,因此参数必须是小写才会起作用。
#echo示范
#include示范作用:将环境变量插入到页面中。
语法:
<!--#echo var="变量名称"-->
如:
<!--#echo var="DATE_LOCAL"-->现在时间
<!--#echo var="REMOTE_ADDR"-->你的IP地址
作用:将文本文件的内容直接插入到文档页面中。
语法:<!--#include file="文件名称"-->
file 指定的是相对路径,相对于使用#include指定的文档所在目录,被包含文档可在同级目录或子目录汇总,不能在父目录中。
<!--#include virtual="文件名称"-->
virtual 指定Web站点上的虚拟目录的完整路径。
#flastmod和 #fsize示范
#exec示范#flastmod: 文件最近更新日期
#fsize: 文件的长度
语法:
<!--#flastmod file="文件名称"-->
<!--#fsize file="文件名称"-->
作用:将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi。
语法:
<!--#exec cmd="文件名称"-->
<!--#exec cgi="文件名称"-->
参数:
cmd 常规应用程序
cgi CGI脚本程序
示例:
<!--#exec cmd="cat /etc/passwd"--> 将会显示密码文件
<!--#exec cmd="ls -a"--> 将会显示当前目录下文件列表
<!--#exec cgi="/cgi-bin/gb.cgi"--> 将会执行CGI程序gb.cgi。
注意:从上面的示例可以看出,这个指令相当方便,但是也存在安全问题。
禁止方法:
- Apache,将access.conf中的"Options Includes ExecCGI"这行代码删除;
- 在IIS中,要禁用 #exec命令,可修改 SSIExecDisable元数据库;
#config
作用:
指定返回给客户端浏览器的错误信息、日期和文件大小的格式。语法:
<!--#config errmsg="自定义错误信息"-->
<!--#config sizefmt="显示单位"-->
<!--#config timefmt="显示格式"-->
参数:
errmsg
自定义SSI执行错误信息,可以为任何你喜欢的方式。sizefmt
文件大小显示方式,默认为字节方式("bytes")可以改为千字节方式("abbrev")timefmt
时间显示方式,最灵活的配置属性。
XSSI
XSSI: (Extended SSI)是一组高级SSI指令,内置于Apache 1.2或更高版本的mod-include模块之中。其中可利用的的指令有
#printenv
作用:
显示当前存在于WEB服务器环境中的所有环境变量。语法:
<!--#printenv-->
#set
作用:可给变量赋值,以用于后面的
if语句。语法:
<!--#set var="变量名" value="变量值"-->
示例:
<!--#set var="color" value="红色"-->
#if
作用:创建可以改变数据的页面,这些数据根据使用
if语句时计算的要求予以显示。语法:
<!--#if expr="$变量名=/"变量值A/""-->
显示内容<!--#elif expr="$变量名=/"变量值B/""-->
显示内容<!--#else-->
显示内容<!--#endif"-->
欢迎指正补充,谢谢!
- Server Side Include( SSI )学习
- SSI(Server Side Include)
- SSI(Server Side Include)简介
- SSI(Server Side Include)
- SSI(Server Side Include)
- 服务器端包含SSI(Server Side Include)简介
- SSI (Server Side Include) in one page
- 服务器端包含SSI(Server Side Include)简介
- 服务器端包含SSI(Server Side Include)简介
- 服务器端包含SSI(Server Side Include)简介2
- nginx让指定站点支持SSI(Server side include)
- SSI(Server Side Includeds)使用详解
- 让 Nginx 支持 SSI (Server Side Includes)
- SSI(Server Side Includeds)使用详解
- ssi include 用法
- ssi include 命令 路径问题
- client-side and server-side
- tomcat ssi配置及升级导致ssi include错误问题解决
- #pragma once #ifndef
- struts2.3.3整合spring3.3.1
- VMware虚拟机中双网卡连接双物理网卡的实现
- ipv6 socket
- hbase shell 简单使用
- Server Side Include( SSI )学习
- 图片立体边框效果
- Android控件之ZoomControls缩放控件
- linux之cut用法
- 创建触发器,报索引中丢失IN或OUT参数::1
- database dump 概念
- SeaJS 里版本号和时间戳管理的最佳实践
- 阅读好体验的准则:100% Easy-2-Read
- ubuntu tooltips颜色设置