Apache下开启SSI配置使shtml支持include包含

学过动态网页,如asp、php的人知道如何去引用网站头部、底部文件包含。例如在php中有一个方法:include();这个方法能在当前文档 中引入外部文件,从而方便网站的开发和维护,然而html静态文件的包含却鲜为人知,我们平时看到很多大型的网站都使用了.shtml的文件类型,其实它 们是启用了ssi的功能,因此实现了shtml等静态页的包含。

下面我讲解一下Apache下ssi配置方法。

  1. 加 载ssi模块。因为ssi是apache中的一个模块服务项,要使用ssi功能,我们首先要对ssi模块进行加载,打开apache的配置文件 httpd.conf。找到 LoadModule ssl_module modules/mod_ssl.so 命令,因该服务未被默认加载,所以只需取消该命令前的注释符#即可开启。如图所示:1
  2. 添加你需要的文件类型,因为使用ssi技术的默认文件名为.shtml,所以我们需要在配置文件中对.shtml后缀名进行设置,并按自己的需求设置需要对ssi技术进行解析的文件类型设置。同样在httpd.conf文件中找到如下两行代码:AddType text/html .shtmlAddOutputFilter INCLUDES .shtml

    如果代码前有注释,请把注释去掉,还可以添加.html的文件类型,如图:

    2

  3. 在 httpd.conf文件中查找“Options Indexes FollowSymLinks” 在后面加上INCLUDES,需要注意的是,ssi可以利用shell来执行命令,因此这个功能是有危险的,它会执行任何包含在exec标记中的命令,如 果你的用户有权限修改你的网页内容,建议把该功能关闭。当然你还可以加上IncludesNOEXEC参数,来关闭exec功能,同时又保留SSI。此时 改为: Options Indexes FollowSymLinks INCLUDES IncludesNOEXEC
  4. 重启apache,即可使用shtml文件包含了。对于个别apache环境还不能使用.html的情况,你可尝试在目录配置中添加以下代码基本能开启:AddType text/html .ssiOptions Includes

    AddOutputFilterByType INCLUDES;DEFLATE text/html

  5. 文件包含引用的方法:引用绝对路径的文件:<!–#include file=”e:/w2/top.shtml”–>引用当前虚拟目录文件:<!–#include virtual=”include/top.html”–>

    路径要写正确,路径不正确会报错:[an error occurred while processing this directive]

原文网址:http://jingyan.baidu.com/article/4ae03de323cc903eff9e6bea.html

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注