Nginx开启SSI模块支持shtml

今天需要shtml,测试了下,很简单在nginx.conf 文件的 http{} 段中,以开启 SSI 模块的支持:

ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

重启nginx即可

带点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>(如文件制作日期/大小显示方式)

#echo 示范

作用:将环境变量插入到页面中。

语法:

<!–#echo var=”变量名称”–>

示例:

<!–#echo var=”DOCUMENT_NAME”–> 本文档名称
<!–#echo var=”DATE_LOCAL”–> 现在时间
<!–#echo var=”REMOTE_ADDR”–> 你的IP地址

#include 示范

作用:将文本文件的内容直接插入到文档页面中。

语法:

<!–#include file=”文件名称”–>
<!–#include virtual=”文件名称”–>

file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的nav_head.htm文档,则为file=”nav_head.htm”。
virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的nav_head.htm文件;则为file=”/hoyi/nav_head.htm”

参数:

file 指定包含文件相对于本文档的位置
virtual 指定相对于服务器文档根目录的位置

注意:

  1. 文件名称必须带有扩展名。
  2. 被包含的文件可以具有任何文件扩展名,我觉得直接使用htm扩展名最方便,微软公司推荐使用 .inc 扩展名(这就看你的爱好了)。

示例:

<!–#include file=”nav_head.htm”–> 将头文件插入到当前页面
<!–#include file=”nav_foot.htm”–> 将尾文件插入到当前页面

此条目发表在服务器分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复