老版地址(仅作固定作用):old.jincong.net

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

apache开启SSI支持iclude及hml语法配置中错误解决SSI模块,apache要使用SSI需要开启模块同时配置i支持的文件类型。SSI的优势,SSI是英文SeveSideIclude的缩写,翻译......
以下是【技术主管:一叶知秋】分享的内容全文:

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语法配置中错误解决 ] 仅为会员分享交流,仅供学习、参考使用,请勿用于其他用途,如果想商业使用或者代理,请自行联系版权方获取授权。任何未获取授权的商业使用与本站无关,请自行承担相应责任。
本站不存储任何资源文件,敬请周知!
此资源仅供个人学习、研究使用,禁止非法转播或商业用途,请在获取后24小时内删除,如果你觉得满意,请寻求购买正版或获取授权!
免责申明:本站仅提供学习的平台,所有资料均来自于网络分享线索,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以处理。版权申诉相关说明
本网站采用 BY-NC-SA 协议进行授权 转载请注明原文链接:apache 开启SSI 支持include及shtml语法配置中错误解决
221381
领取福利

微信扫码领取福利

微信扫码分享