shtml网页SSI使用详解

合集下载

shtml入门教程(超详细)

shtml入门教程(超详细)

超级详细shtml教程SSI有什么用?之所以要扯到ssi,是因为shtml--server-parsed HTML 的首字母缩略词。

包含有嵌入式服务器方包含命令的HTML 文本。

在被传送给浏览器之前,服务器会对SHTML 文档进行完全地读取、分析以及修改。

shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来比如:你可以在SHTML文件中用SSI指令引用其他的html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。

它实现了HTML所没有的功能,就是可以实现了动态的SHTML,可以说是HTML的一种进化吧。

像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。

目前,主要有以下几种用用途:1、显示服务器端环境变量<#echo>2、将文本内容直接插入到文档中<#include>3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式) 高级SSI<XSSI>可设置变量使用if条件语句。

使用SSISSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。

如:<!--#include file="info.htm"-->就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。

SSI应用详解

SSI应用详解

SSI应用详解,举例说明
解释下吧.举个例子,打开腾讯的新闻内页,右侧的推荐列表总是最新的,不管你当前的页面是8月的还是1
月的,右侧的最新新闻总是即时的,开始觉得可能是很频繁的生成静态文件,但是很快被自己否定了,很占资源,麻烦.后来也想到靠js,但是查看了TX的源码,发现也不是,代码直接写到当前页面了.于是后来一直百思不得其解.
最近这个问题算是解决了.
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。

从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。

SSI具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。

SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。

本文将主要结合Apache服务器介绍SSI的使用方法。

服务器端配置ssi的方法可以参考下面的网址,我就不废话了,很简单.
/articles/275.shtml
/newsoft/ApacheManual/howto/ssi.html
/docs/2.2/howto/ssi.html
然后程序里的实现方式:
PHP代码
模板里是这样的:
XML/HTML代码
然后,生成的静态文件里,这一部分的代码是这样的(在服务器里看源码):
XML/HTML代码
在客户端查看的时候,就变成html代码了.呵呵.
ssi的内容其实就是html代码.只是为了方便大量的页面对他的调用,即时的调用.所以才出现的一种技术.
哎,孤陋寡闻,困扰我多年啊.。

Apache 开启SSI配置

Apache 开启SSI配置

Apache 开启SSI配置1、去掉AddType text/html .shtml,AddOutputFilter INCLUDES .shtml前面注释AddHandler server-parsed .shtmlAddType text/html .shtml .html .htmAddOutputFilter INCLUDES .shtml .html .htm2、查找Options Indexes FollowSymLinks在后面加上INCLUDES 注意,SSI确实可以利用shell来执行命令,这个功能是极度危险的,因为它会执行任何包含在exec标记中的命令。

如果用户有可能修改你的网页内容,那么你一定要关闭这个功能。

可以在Options指令中加上IncludesNOEXEC参数,以关闭exec功能,同时又保留SSI。

<Directory "/wwwroot"> #修改wwwroot网站目录# Options FollowSymLinks# AllowOverride None# Order deny,allow# Deny from allOptions FollowSymLinks INCLUDES IncludesNOEXECAllowOverride None</Directory>3、重新启动apache ,ok你的html、shtml就可以加载页面了。

4、用include命令包含页面。

include元素能按file属性或virtual属性判断应该包含的文件。

file属性是一个相对于当前目录的文件路径,即不能是一个绝对路径(以"/"开头)或包含"../"的路径。

virtual属性可能更有用,它是一个相对于被提供的文档的URL ,可以以"/"开头,但必须与被提供的文档位于同一服务器上。

asp.netshtml在iis中运行环境设置

asp.netshtml在iis中运行环境设置

shtml在iis中运行环境设置 shtml在iis中运行环境设置在IIS中运行shtml文件需要在“Web服务扩展”中允许“在服务器端得包含文件”(如图)。

每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。

首先介绍一下html与htm关于HTML,HTML(HyperT extMark-upLanguage)即超文本标记语言,是WWW的描述语言。

设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。

我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。

HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。

HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

关于HTM,实际上HTM与HTML没有本质意义的区别,只是为了满足DOS仅能识别8+3的文件名而已,因为一些老的系统(win32)不能识别四位文件名,所以某些网页服务器要求index.html最后一个l不能省略。

MSIE能自动识别和打开这些文件,但编写网页地址的时候必须是完全对应的,也就是说index.htm和index.html是两个不同的文件,对应着不同的地址。

值得一提的是UNIX系统中对大小写敏感,不吻合的话就可能报没有文件或者找不到文件。

其次介绍一下shtml和shtm关于shtml,shtml是一种基于SSI技术的文件,也就是Server Side Include--SSI 服务器端包含指令,一些Web Server如果有SSI 功能的话就会对shtml文件特殊招待,服务器会先扫一次shtml文件看没有特殊的SSI指令存在,如果有的话就按Web Server设定规则解释SSI指令,解释完后跟一般html一起调去客户端。

SHTML配置及语法

SHTML配置及语法

SHTML配置及语法一介绍:SSI是Server Side Includes的缩写,是嵌入到HTML页面的一组指令的集合。

在返回请求的页面(包含SSI指令)前,服务器会处理这些指令,并用处理的结果替换指令,然后把页面返回。

这样就允许在HTML页面中添加动态产生的内容。

二主要用途目前,主要有以下几种用用途:1、显示服务器端环境变量<#echo>2、将文本内容直接插入到文档中<#include>3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式) 高级SSI可设置变量使用if条件语句三配置Tomcat(以下为tomcat5版本配置,tomcat6只需配置第三步)1在tomcat目录/server/lib/下找到servlets-ssi.renametojar文件,将这个文件重命名为servlets-ssi.jar2在tomcat目录/conf/下找到web.xml文件,想使用SSI Servlet就删除在SSI servl et和servlet-mapping周围的注释,想使用SSI filter就删除在SSI filter和filter-mapping 周围的注释3在tomcat目录/conf/下找到server.xml文件,在<context>标签上加上属性privileg ed="true"(tomcat6可在context.xml文件中找到<context>标签)五、基本语法1、SSI指令的语法格式如下:<!--#element [attribute=value] [attribute=value] ... -->2、config<!--#config timefmt="" -->config用来指定返回给客户端浏览器的错误信息、日期和文件大小的格式。

SSI学习指南

SSI学习指南

SSI全攻略-网站shtml文件是什么?[日期:2006-04-12] 来源:作者:未知[字体:大中小]SSI(Server Side Include),通常称为服务器端嵌入,是一种类似于ASP的基于服务器的网页制作技术。

大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令。

SSI工作原理:在一个通常以.shtml为扩展名的SSI文件中,标准的HTML编码会被直接送到浏览器上,而内嵌Perl 语言形式的SSI命令则先被网络服务器解释执行,如果是标准输出的话,输出信息也将作为标准的HTML 而被送至浏览器。

SSI简单应用实例:〈html〉〈head〉〈title〉my first SSI page〈/title〉〈/head〉〈body〉欢迎您(于〈!--#echo var="date_local" --〉)访问本网站。

〈/html〉标记在上面文档中的“〈!--#--〉”结构表明了SSI命令会被服务器翻译执行,而不是直接送到客户端。

我们可以在浏览器中用“查看→源文件"观察源代码:〈html〉〈head〉〈title〉my first SSI page〈/title〉〈/head〉〈body〉欢迎您(于dec 06 1999)访问本网站。

〈/html〉我们发现,文档中的html被直接传到了客户端,而SSI命令得到了执行。

SSI代码在客户端是不可见的,客户端只能看到它执行的效果。

一个比较实用的例子网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。

SSI提供了一种简单、有效的方法来解决这一问题,它将一个网站的基本结构放在几个简单的HTML 文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

如:〈html〉〈head〉〈title〉SSI example〈/title〉〈/head〉〈body〉〈h2〉新闻〈/h2〉〈p〉〈!--#include file="news.txt" --〉〈p〉新闻更新日期:〈!--#flastmod file="news.txt" --〉〈/body〉〈/html〉将频繁的更新内容放在news.txt中,SSI会通过include 指令将其内容包含到输出的网页中。

SSI指令教程

SSI指令教程

SSI指令教程⼀:概述SSI:服务器端嵌⼊或者叫服务器端包含,是Server Side Include的简写。

SSI技术通过在⽂档中加⼊SSI指令,让服务器端在输出⽂档之前解析SSI指令,并把解析完的结果和⽂档⼀同输出给客户端。

SSI的指令格式为:<!-- #directive parameter="value" -->其中,directive是指令名,parameter指令参数,value指令参数值可以看到,就是html注释,事实上,Web服务器开启了SSI,并且页⾯包含可以解析的指令,那么Web服务器就解析这个指令。

没开启器SSI 或者开启了SSI,但是不是可以解析的指令,那么都当做注释。

注意的是,“#”要和directive连在⼀起,中间不能含有空格SSI包含的指令有config:修改 SSI 的默认设置echo:显⽰环境变量exec:执⾏ CGI 脚本flastmod :显⽰指定⽂件的最后修改⽇期fsize:显⽰指定⽂件的⼤⼩include:把其它⽂档插⼊到当前被解析的⽂档中⼆:准备⼯作新建⼀个站点,站点路径为C:\inetpub\wwwroot\ssitutorial,⽹站名称为localhost8585,端⼝为8585在站点⽬录放⼀个html⽂件,名为index.html,⾸先没开启SSI时,测试使⽤SSI指令是否有效果html⽂件内容如下<!DOCTYPE html><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title></head><body><p>Date = <!--#echo var = "date_local" --></p></body></html>使⽤了echo指令,显⽰当前时间可以看到”Date=“后⾯并没显⽰当前时间,说明没开启SSI,指令只是作为注释下⾯,开启SSI在IIS选中站点localhost8585,选择”处理程序映射“进⼊”处理程序映射“后,选择操作中的”添加模块映射“弹出”添加模块映射“窗⼝,在窗⼝指定解析html⽂件点确定后,可以看到,在”处理程序映射“多了⼀项,同时,在站点⽬录下,也就是C:\inetpub\wwwroot\ssitutorial⽣成了⼀个web.config⽂件”处理程序映射“web.config⽂件web.config的内容如下可以看到,”Date=”后⾯显⽰⽇期,说明SSI指令⽣效了三:SSI各个指令的⽤法3.1 config:修改 SSI 的默认设置,参数:errmsg:⾃定义的SSI执⾏错误信息;timefmt:定义⽇期和时间的格式;sizefmt:决定⽂件⼤⼩是以字节、千字节为单位表⽰errmsg参数:⾃定义的SSI执⾏错误信息,必须放在其它指令前,才能显⽰⾃定义的错误信息例如:<!DOCTYPE html><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title></head><body><!-- #config errmsg="这是⾃定义错误信息"--><p>File Size = <!--#fsize file="filename.txt"--> bytes</p></body></html>这⾥的filename.txt并不存在,所以执⾏会出错,那么就显⽰⾃定义错误信息了,如下图timefmt参数:定义⽇期和时间的格式<!-- #config timefmt="%y年%m⽉%d⽇"--><p>Date = <!--#echo var = "date_local" --></p>sizefmt:决定⽂件⼤⼩是以字节(bytes)、千字节(abbrev)为单位表⽰⽐如,有⼀个⽂件a.exe,⼤⼩为48,594,944字节,使⽤不同单位<!--#config sizefmt="bytes"--><p><!--#fsize file="a.exe"--> bytes</p><!--#config sizefmt="abbrev"--><p><!--#fsize file="a.exe"--> kb</p>显⽰如下算⼀下,结果是正确的3.2 echo:显⽰环境变量<p>请求⽅式= <!-- #echo var = "HTTP_METHOD" --></p>这⾥显⽰请求⽅式完整的环境变量,可以在查询3.3 exec:执⾏ CGI 脚本⾸先需要得到CGI程序,⽤控制台做⼀个CGI程序,名为CgiDemousing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace CgiDemo{class Program{static void Main(string[] args){Console.Write("Content-Type: text/html\n\n");Console.Write("<p>Path:" +System.Environment.GetEnvironmentVariable("PATH_TRANSLATED") +"</p>"); } // End of Main().}}输出CGI程序的服务器路径然后,使⽤exec执⾏CGI<pre><!--#exec cgi = "/cgi-bin/cgidemo.exe" --></pre>说明服务器还要做⼀些配置。

浅析Apache服务器中SSI和CGI设定方法

浅析Apache服务器中SSI和CGI设定方法

由于Apache具有相当高的可移植性,它支持超过30种操作系统,包括Unix、Windows 及Darwin等系统,所以目前在网络上已注册的网域里大部份是使用Apache网页服务器。

目前ApacheSoftware Foundation 正致力于发展现在已进入alpha测试阶段的Apache2.0。

在这里,我和大家探讨如何修改服务器选项让服务器能提供简单的动态网页内容,也就是支持CGI程序及 Server-Side Include(SSI)程序。

1、准备工作首先,我假设你已经安装好Apache 而且你的Apache能提供静态网页供浏览。

Apache的安装会自动附上静态的HTML 测试页,也就是说如果能看到那测试页,就代表你的Apache能正常运作了。

基本安装下的Apache仅能提供静态的HTML网页。

然而,你可以通过使用模块(modules)来提升它的功能。

在原始的设定下,Apache的编译会包含mod_include 及 moc_cgi 这两个模块。

你可以在bin子目录下执行./httpd -l 来查看你的Apache是否装有这两个模块。

执行的输出会是一长串Apache现在安装的所有模块。

如果mod_include及moc_cgi 这两个模块不在清单里,你必须重新编译服务器。

重新编译时,确定依照如何含括 mod_include、moc_cgi 模块的说明。

此外你还必需有提供实时网页的Server-Side Includes(相关资料网址:/catalog/apache/excerpt/ch10.html)。

有了server-side includes (SSI)支持,你就能制作出实时的动态网页。

接下来,我先从服务器的SSI支持设定开始,然后进入CGI的编写。

2、Apache的设定首先你必须先找到Apache这个设定文件。

Apache的原始安装目录在 Unix 下是/usr/local/apache,在Windows下则是 c:\Program Files\Apache。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

shtml网页SSI使用详解来源:网页制作学习园地作者网页制作学习园地点击数:82 录入时间:07-12-06 23:59:10shtml使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。

1、Config命令Config命令主要用于修改SSI的默认设置。

其中:Errmsg:设置默认错误信息。

为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。

<!--#config errmsg="Error! Please email webmaster@ -->Timefmt:定义日期和时间的使用格式。

Timefmt参数必须在echo命令之前使用。

以下是引用片段:<!--#config timefmt="%A, %B %d, %Y"--><!--#echo var="LAST_MODIFIED" -->显示结果为:Wednesday, April 12, 2007也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。

Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。

如果以字节为单位,参数值为"bytes";对于千字节和兆字节可以使用缩写形式。

同样,sizefmt参数必须放在fsize命令的前面才能使用。

以下是引用片段:<!--#config sizefmt="bytes" --><!--#fsize file="index.html" -->2、Include命令Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。

通过Include命令只需要改动一个文件就可以瞬间更新整个站点!Include命令具有两个不同的参数:Virtual:给出到服务器端某个文档的虚拟路径。

例如:<!--#include virtual="/includes/header.html" -->File:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径。

例如:<!--#include file="header.html" -->这就要求每一个目录中都包含一个header.html文件。

3、Echo命令Echo命令可以显示以下各环境变量:DOCUMENT_NAME:显示当前文档的名称。

<!--#echo var="DOCUMENT_NAME" -->显示结果为:index.htmlDOCUMENT_URI:显示当前文档的虚拟路径。

例如:<!--#echo var="DOCUMENT_URI" -->显示结果为:/YourDirectory/YourFilename.html随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。

如果使用SSI,一切就会迎刃而解。

因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:http://YourDomain<!--#echo var="DOCUMENT_URI" -->QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符"\"。

例如:<!--#echo var="QUERY_STRING_UNESCAPED" -->DATE_LOCAL:显示服务器设定时区的日期和时间。

用户可以结合config命令的timefmt参数,定制输出信息。

例如:<!--#config timefmt="%A, the %d of %B, in the year %Y" --><!--#echo var="DATE_LOCAL" -->显示结果为:Saturday, the 15 of April, in the year 2007DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。

例如:<!--#echo var="DATE_GMT" -->LAST_MODIFIED:显示当前文档的最后更新时间。

同样,这是SSI中非常实用的一个功能,只要在HTML 文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。

<!--#echo var="LAST_MODIFIED" -->CGI环境变量除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:SERVER_SOFTWARE:显示服务器软件的名称和版本。

例如:<!--#echo var="SERVER_SOFTWARE" -->SERVER_NAME:显示服务器的主机名称,DNS别名或IP地址。

例如:<!--#echo var="SERVER_NAME" -->SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。

例如:<!--#echo var="SERVER_PROTOCOL" -->SERVER_PORT:显示服务器的响应端口。

例如:<!--#echo var="SERVER_PORT" -->REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。

例如:<!--#echo var="REQUEST_METHOD" -->REMOTE_HOST:显示发出请求信息的客户端主机名称。

<!--#echo var="REMOTE_HOST" -->REMOTE_ADDR:显示发出请求信息的客户端IP地址。

<!--#echo var="REMOTE_ADDR" -->AUTH_TYPE:显示用户身份的验证方法。

<!--#echo var="AUTH_TYPE" -->REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。

<!--#echo var="REMOTE_USER" -->4、Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。

<!--#fsize file="index_working.html" -->5、Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。

<!--#config timefmt="%A, the %d of %B, in the year %Y" --><!--#flastmod file="file.html" -->这里,我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。

方法如下:<!--#config timefmt=" %B %d, %Y" --><A HREF="/directory/file.html">File</A><!--#flastmod virtual="/directory/file.html" --><A HREF="/another_directory/another_file.html">Another File</A><!--#flastmod virtual="/another_directory/another_file.html" -->显示结果为:File April 19, 2007Another File January 08, 20076、ExecExec命令可以执行CGI脚本或者shell命令。

使用方法如下:Cmd:使用/bin/sh执行指定的字串。

如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。

Cgi:可以用来执行CGI脚本。

例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器:<!--#exec cgi="/cgi-bin/counter.pl" -->s。

相关文档
最新文档