当前位置: > Linux服务器 > apache >

apache支持include文件(.shtml)解析的配置方法详解

时间:2014-08-12 22:48来源:linux.it.net.cn 作者:it

SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。

SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。本文将主要结合Apache服务器介绍SSI的使用方法。

本文介绍下,SSI在apache中的配置方法,供大家参考。

方法1,apache配置:

1. 确认加载include.so模块,将注释去掉:
 

复制代码代码示例:
LoadModule include_module libexec/apache2/mod_include.so

2. AddType部分去掉这两段注释:
 

复制代码代码示例:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

3. Directory目录权限里面找到
Options Indexes FollowSymLinks
增加Includes修改为:
 

复制代码代码示例:
Options Indexes FollowSymLinks Includes

4. 重新启动Apache,测试:
 

复制代码代码示例:
<!–#include file=”head.html”–>
中间部分的内容:脚本学堂,欢迎大家的光临。www.jbxue.com
<!–#include file=”foot.html”–>

方法2,创建文件.htaccess

如果用户不能直接访问服务器配置文件,可以使用文件编辑器创建一个名为.htaccess的文件。注意,文件名前一定要有符号“.”,这样服务器才能知道该文件是隐藏文件,从而提高文件的安全性,避免错误操作。

在.htaccess文件中需要加入以下三行文字:
 

复制代码代码示例:
Options Indexes FollowSymLinks Includes
AddType application/x-httpd-CGI .CGI
AddType text/x-server-parsed-html .shtml

完成后,可以把.htaccess文件上传到服务端的相应目录,该文件对所有子目录有效。
如果用户希望在目录级上禁止CGI或shell命令,可以在.htaccess文件中的Options选项行加入关键字:IncludesNOEXEC。
 
补充:使用.shtml还是.html?

任何包含SSI的文件在下传到客户端之前,都必须经过服务器的解析过程。
虽然从某种程度上这样会增加服务器的负载,但是除非用户的网站每天有几百万的访问用户,某则服务器的性能不会有明显的下降。
如果不需要在每个页面都使用SSI,则无需让服务器解析每一个页面。如果用户只希望在几个特殊页面中使用SSI,可以将文件的后缀名改为.shtml,让服务器只解析包含SSI的.shtml文件。

另外,如果有多个页面使用了SSI,但是不希望使用.shtml的后缀名时,可以在.htaccess文件中使用以下命令行:
 

复制代码代码示例:
AddType text/x-server-parsed-html .html

使用指令方法

参考:apache手册中mod_include模块

(责任编辑:IT)
------分隔线----------------------------