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

来源:互联网 发布:人工智能主题的基金 编辑:程序博客网 时间:2024/04/28 06:56

学过动态网页,如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 命令,因该服务未被默认加载,所以只需取消该命令前的注释符#即可开启。如图所示:

  2. 添加你需要的文件类型,因为使用ssi技术的默认文件名为.shtml,所以我们需要在配置文件中对.shtml后缀名进行设置,并按自己的需求设置需要对ssi技术进行解析的文件类型设置。同样在httpd.conf文件中找到如下两行代码:

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

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

  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 .ssi

    Options 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]

0 0
原创粉丝点击