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="http://www.w3.org/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指令,显示当前时间

浏览http://localhost:8585/index.html,查看效果

可以看到”Date=“后面并没显示当前时间,说明没开启SSI,指令只是作为注释

下面,开启SSI

在IIS选中站点localhost8585,选择”处理程序映射“

进入”处理程序映射“后,选择操作中的”添加模块映射“

弹出”添加模块映射“窗口,在窗口指定解析html文件

点确定后,可以看到,在”处理程序映射“多了一项,同时,在站点目录下,也就是C:\inetpub\wwwroot\ssitutorial生成了一个web.config文件

”处理程序映射“

web.config文件

web.config的内容如下

设置后之后,测试下SSI是否成功,刷新http://localhost:8585/index.html,查看效果

可以看到,”Date=”后面显示日期,说明SSI指令生效了

三:SSI各个指令的用法

3.1 config:修改 SSI 的默认设置,参数:

errmsg:自定义的SSI执行错误信息;

timefmt:定义日期和时间的格式;

sizefmt:决定文件大小是以字节、千字节为单位表示

errmsg参数:自定义的SSI执行错误信息,必须放在其它指令前,才能显示自定义的错误信息

例如:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/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程序,名为CgiDemo

using 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>

接着访问上面html的地址http://localhost:8585/index.html,出现下面这种情况

说明服务器还要做一些配置。首先,在站点localhost8585—>处理程序映射—>添加模块映射

配置CGI模块

再然后,在 服务器 (不是站点)下找到”ISAPI和CGI限制”

添加刚才那个CGI

再次访问http://localhost:8585/index.html,得到如下结果

说明成功执行CGI程序

3.4 flastmod :显示指定文件的最后修改日期

<!-- #config timefmt="%y年%m月%d日"-->
<pre> <!-- #flastmod  file = "a.exe" --></pre>

得到如下结果

a.exe的信息如下

说明是正确的

3.5 fsize:显示指定文件的大小

<!--#config sizefmt="bytes"-->
<p><!--#fsize file="a.exe"--> bytes</p>

得到如下结果

a.exe大小信息如下

说明也是正确的

3.6 include:把其它文档插入到当前被解析的文档中

在index.html所在目录建一个inc.htm文件,文件内容如下

<h2>这是include文件内容</h2>

在index.html包含inc.html

<body>

<!--#include file="inc.htm"-->

</body>

访问http://localhost:8585/index.html,得到如下结果

可见,inc.htm里的内容被包含进来

另外,如果被包含文件中含有SSI指令,也会解析SSI指令

时间: 2024-10-01 05:12:26

SSI指令教程的相关文章

ARM指令教程

ARM指令教程 ARM汇编程序特点: l         所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值. l         ARM汇编语句中.当前语句很多时候要隐含的使用上一句的执行结果.而且上一句的执行结果,是放在CPSR寄存器里,(比如说进位,为0,为负…) CMP R0,R1 BNE NoMatch 比如上一句,BN

SSI指令使用详解(转)

什么是 SHTML使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术.SSI工作原理:将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含时间/日期戳.版权声明或供客户填写并返回的表单.对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法.

SSI

一.简介 SSI(Server Side Includes)技术,是为WEB服务器提供的一套命令,在HTML文档中通过注释行调用的命令或指针,就可以将文本.图形或应用程序信息包含到网页中. SSI具备强大的功能,只要使用一条简单的SSI命令就能够实现整个网站的内容更新,动态显示时间和日期,连同执行shell和cgi脚本程式等复杂的功能.   二.要求 包含SSI 指令的文件要求特殊处理,所以必须为所有SSI 文件赋予SSI 文件扩展名.默认扩展名是 .stm..shtm 和 .shtml.  

tomcat ssi配置及升级导致ssi include错误问题解决

最近tomcat升级版本时,遇到了ssi解析的问题,记录下解决的过程,还有tomcat ssi配置的要点. tomcat 配置SSI的两种方式 Tomcat有两种方式支持SSI:Servlet和Filter. SSIServlet 通过Servlet,org.apache.catalina.ssi.SSIServlet,默认处理”*.shtml”的URL. 配置方式: 修改tomcat的 conf/web.xml文件,去掉下面配置的注释: <servlet> <servlet-name&

SHTML 教程

什么是 SHTML 使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术. SSI工作原理: 将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含时间/日期戳.版权声明或供客户填写并返回的表单.对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的

SSI学习(二)

1.SSI指令 #config:指定返回到客户端浏览器的错误消息.日期和文件大小所使用的格式. #echo:在 HTML 页中插入环境变量的值. #exec:运行一个应用程序或一条 shell 命令并将输出插入到 HTML 页中. #flastmod:将文件修改日期插入到 HTML 页中. #fsize:将文件大小插入到 HTML 页中. #include:在 HTML 或 ASP 页中包含文件. 因为包含 SSI 指令的文件需要特殊处理,所以必需给 SSI 文件一个 SSI 文件扩展名. 默认

SSI(Server Side Include)简介

Server-side include(服务器端包括) Server-side include(服务器端包括)是浏览器向服务器请求您的文档时并入您的文档的一个文件. 当访问者浏览器请求含有 include(包括)指令的文档时,服务器处理 include(包括)指令并创建新的文档,在新文档中 include(包括)指令被所包括的文件内容取代.然后服务器将此新文档发送给访问者的浏览器.但当您在浏览器中直接打开一个本地文档时,因为没有服务器可以处理该文档中的 include(包括)指令,所以浏览器不处

Nginx之SSI

SSI是什么:Server Side Include,是一种基于服务端的网页制作技术. The ngx_http_ssi_module module is a filter that processes SSI (Server Side Includes) commands in responses passing through it. 它的工作原因是:在页面内容发送到客户端之前,使用SSI指令将文本.图片或代码信息包含到网页中.对于在多个文件中重复出现内容,使用SSI是一种简便的方法,将内容

nginx ssi 配置小细节(一)

最近工作需要使用nginx的ssi (server side include)技术,在这里,将使用中的一点心得分享一下,也是一种备忘! 首先,nginx的ssi启用很简单,就只有三个最基本的指令: ssi on: 默认是关闭的 ssi_silent_errors on; 默认是关闭的 ssi_types text/shtml;  默认是text/html 这三行的配置可以放在nginx的三个作用域下面(http, server, location).nginx的基本概念可以自己去网上学习. 这里