apache SHTML网页SSI使用详解

 更新时间:2009年10月09日 12:49:42   作者:  
在网站构建过中。当我们遇到很多的内容为静态页面,而页首与页脚又经常要更换时,如果一直使用html文件总会有很多的麻烦。
方法一:下面是详细的设置apache支持shtml的设置步骤
开启includes模块运行shtml
0、开启php环境安装目录 (我的为D:\wamp\Apache2\conf下) 的httpd.conf 文件中的(大概408-409行处):
1、 AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
2、(F:/shz 为运行文件存放的地方)
DocumentRoot "F:/shz" (大概150处)
<Directory "F:/shz"> (大概178处)
3、在Options Indexes FollowSymLinks 后面添加 +Includes
如:Options Indexes FollowSymLinks +Includes (大概197处):
需重启apache);
方法二:如何让apache支持.shtml 让apache支持include标签
打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索结果:
修改为:
复制代码 代码如下:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options Indexes FollowSymLinks includes

保存httpd.conf,重起apache即可。
到此我们就完成了对Apache SSI的设置.
<!--#include file="index.php"-->

个人觉得SSI的好处是静态化中局部动态化的处理比较方便,比如新闻中的留言

以下是详细的说明介绍
因为批量修改起来很不方面,所以我们总希望能将页脚与页尾include到html文件中来。html属于客户端解析形的格式化语言,自4.0后几乎很难再有大的变动(毕竟很多浏览器只按4.0标准来解析),所以至今也没include这样的概念。而html的框架(frame与iframe)虽然可以用来包含首页与页脚文件,但使用frame与iframe的概念与动态页面(asp,jsp,php等)的include那样不同,frame与iframe的主体页面与被包括的页的不是一个页面,而通过include的方式调用的页面主体页面与被包括的页面仍然是一个页面,这样页面再加载的时就没速度的影响,更不会有多个窗口这样的问题。当然frame与iframe的作用还是挺大的,只是这与include这样包括页面进来的概念不同。

  除frame与iframe之外,常用的调用文件的方法还有采用js。这与include概念倒是很接近,但可以需要客户端js的支持,而且修改也不很方面,因为被包括的js是通过document.write来输出html代码,这样虽然能达到效果,可js毕竟执行客户端动态效果更好,比如现在较流行的AJAX。所以无论是frame/iframe还是js都与include不太一样(倒是Dreamweaver中的library与include很像,可惜只能用在Dreamweaver中),而我们有时页面有很多静态页面,内容不是动态的且没有规律可循,更不好做到数据库里去。如新浪的新闻之类的,这时我们可以采用shtml的方式来做这些页面。

  那什么是shtml呢?
  使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

  什么是SSI?
  SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有 强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。 网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将 一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

  如何使你的Apache服务器支持SSI?
  Apache(如何在windows以及linuc下安装apache请参见另两篇文章)默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例(在linux平台下与之相同),打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:
以下是引用片段:
复制代码 代码如下:

  # AddType text/html .shtml
  # AddOutputFilter INCLUDES .shtml
  把这两行前面的#去掉 。
  然后搜索“Options Indexes FollowSymLinks”
  在搜索到的那一行后面添加“ Includes”
  即将该行改变为 Options Indexes FollowSymLinks Includes
  熟悉apache manual的可能会觉得比较容易。
  保存httpd.conf,重起apache即可

  到此我们就完成了对Apache SSI的设置。

SSI命令:

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

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

<!--#config errmsg="Error! Please email webmaster@mydomain.com -->

  Timefmt:定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。

    <!--#config timefmt="%A, %B %d, %Y"-->
    <!--#echo var="LAST_MODIFIED" -->

  显示结果为:Wednesday, April 12, 2000

  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文件。

相关文章

  • linux下源码包安装的服务管理

    linux下源码包安装的服务管理

    大家好,本篇文章主要讲的是linux下源码包安装的服务管理,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • CentOS7中使用shell脚本安装python3.8环境(推荐)

    CentOS7中使用shell脚本安装python3.8环境(推荐)

    这篇文章主要介绍了CentOS7中使用shell脚本安装python3.8环境,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 如何理解与识别Linux中的文件类型

    如何理解与识别Linux中的文件类型

    这篇文章主要给大家介绍了关于如何理解与识别Linux中文件类型的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • linux contos6.8下部署kafka集群的方法

    linux contos6.8下部署kafka集群的方法

    这篇文章主要介绍了linux contos6.8下部署kafka集群的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • LNMP服务器环境配置 (linux+nginx+mysql+php)

    LNMP服务器环境配置 (linux+nginx+mysql+php)

    在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍
    2014-07-07
  • 详解linux下tar压缩解压缩文件夹的命令与参数

    详解linux下tar压缩解压缩文件夹的命令与参数

    大家都知道压缩文件或者文件夹可以为磁盘节省不少空间,那么Linux系统的压缩和解压缩命令都有哪些呢?参数又有哪些呢?下面小编就给大家介绍Linux下tar压缩和解压缩文件夹的命令与参数,希望本文的内容对你能有所帮助。
    2016-11-11
  • Linux下误删messages文件的找回方法

    Linux下误删messages文件的找回方法

    今天小编就为大家分享一篇关于Linux下误删messages文件的找回方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Centos8(最小化安装)全新安装Python3.8+pip的方法教程

    Centos8(最小化安装)全新安装Python3.8+pip的方法教程

    这篇文章主要介绍了Centos8(最小化安装)全新安装Python3.8+pip的方法教程,本文给大家整理了一份命令,需要的朋友可以参考下
    2020-02-02
  • 腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器

    腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器

    本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。
    2016-11-11
  • 关于CentOs系统自带python和yum卸载后的解决办法

    关于CentOs系统自带python和yum卸载后的解决办法

    前几天因项目需要,在服务器上搭建python-mysql模块,结果没安装好,于是乎想卸载重装,遂在网上查询卸载python的方法,结果一不小心直接把系统的python删了个干净,怎么处理呢,看看小编给大家带来的本篇教程吧
    2018-11-11

最新评论