页面载入中...

当前位置:首页 > 教程福利 > 帝国cms > 帝国cms

apache 开启SSI 支持include及shtml语法配置中错误解决

温馨提示:本信息由会员搜集整理发布,您如有异议可以 举报 或者 版权申诉
apache 开启SSI 支持include及shtml语法配置中错误解决SSI模块,apache要使用SSI需要开启模块同时配置ssi支持的文件类型。SSI的优势,SSI是英文Server Side Includes的缩写,翻译

apache 开启SSI 支持include及shtml语法配置中错误解决


SSI模块,apache要使用SSI需要开启模块同时配置ssi支持的文件类型。

SSI的优势,SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。


SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。


apache开启SSI模块,文件httpd.conf 

找到:LoadModule ssl_module modules/mod_ssl.so 去掉前面的注释符号#,让其起作用,服务器默认是不加载该服务的

apache 开启SSI 支持include及shtml语法配置中错误解决


同样在文件httpd.conf 中开启SSI支持的文件类型,默认的是.shtml 你可以自行添加自己需要的文件类型,比如.html

搜索:AddType

AddType text/html .shtml 

AddOutputFilter INCLUDES .shtml

同样,前面的注释符号去掉,让其起作用,如果需要其他类型的文件,可以在.shtml后面加空格 然后添加,比如下面:

AddType text/html .shtml .html .htm

AddOutputFilter INCLUDES .shtml .html .htm

apache 开启SSI 支持include及shtml语法配置中错误解决


最后一步,在站点目录配置Options 中添加支持INCLUDES 命令,有的人的站点目录配置是直接在httpd.conf 中的,有的人是自定义文件的。

格式 Options  FollowSymLinks ExecCGI INCLUDES 或者 Options  +FollowSymLinks +ExecCGI +INCLUDES

这里需要注意的是,ssi可以利用shell来执行命令,因此这个功能是有危险的,它会执行任何包含在exec标记中的命令,如果你的用户有权限修改你的网页内容,建议把该功能关闭。当然你还可以加上IncludesNOEXEC参数,来关闭exec功能,同时又保留SSI。

格式就变为:Options  FollowSymLinks ExecCGI INCLUDES IncludesNOEXEC 或者 Options  +FollowSymLinks +ExecCGI +INCLUDES +IncludesNOEXEC 


最后需要说明的是关于路径报错的处理,an error occurred while processing this directive,这是一个绝对路径和相对路径的冲突,处理的方法,可以直接在Directory 语句中添加SSILegacyExprParser on 语句,如下:

<Directory />

    Options +Indexes +FollowSymLinks +ExecCGI +INCLUDES +IncludesNOEXEC

    AllowOverride All

    Order allow,deny

    Allow from all

    Require all granted

    SSILegacyExprParser on    

</Directory>

如果仍然不行,可以把程序中调用的file换成virtual 解决路径错误的问题

原:<!--#include file="top.shtml"--> 换成:<!--#include virtual="top.shtml"-->

virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的top.shtml文件;则为virtual="/hoyi/top.shtml"


如果使用的是虚拟机不是独立配置的服务器的设置方法,服务器需要开启伪静态 使用.htaccess方法设置

直接添加语句:

Options Indexes FollowSymLinks Includes 

AddType application/x-httpd-CGI .CGI 

AddType text/x-server-parsed-html .shtml .html


关于shtml和html 的选择

如果只是几个页面使用ssi 可以考虑使用shtml,多个页面使用的话还是建议使用html


  

延伸阅读:

  
 

apache 开启SSI 支持include及shtml语法配置中错误解决