帮用户安装了apache,今天客户反映网站中SSI的功能没有。用户网页后缀为.html

环境:appserv-win32-2.5.9 +xp

解决方法:

SSI使用的是mod_include的动态系统对象,一般默认的情况安装的情况下都会安装,Linux下可以通过apachectl -l查看是否包括mod_include.o文件。如果没有,那么需要重新编译apache。对于win32版的apache,简单地查看httpd.conf中LoadModule include_module modules/mod_include.so行是否注释状态,如果是,去掉#

使.shtml扩展名的文件启用SSI
Httpd.conf代码
#AddType text/html .shtml  
#AddOutputFilter INCLUDES .shtml 

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

去掉注释

找到主机DOCUMENT_ROOT目录配置下
Options Indexes FollowSymLinks
修改为:
Options Indexes FollowSymLinks Includes

还需要添加如下信息:

方法一:

添加 SSI 页面的新句柄

缺省情况下,Apache 即使在需要时也不对 HTML 文件进行解析。假如将 .shtml 作为所有包含一个或多个 SSI 指令的 HTML 页面的 SSI 文件扩展名,需要告诉 Apache 将 .shtml 文件扩展名视为需要进行 SSI 解析的页面。如果因为某些原因,将 .html 和 .htm 用做 SSI 扩展名,该这样使用:

AddHandler server-parsed .html
AddType text/html .html

AddHandler server-parsed .htm
AddType text/html .htm

方法二:

添加如下信息:
AddType text/html .ssi
AddOutputFilterByType INCLUDES;DEFLATE text/html

然后保存httpd.conf,重启apache。