SSI在.asp页面正常运行但.html页面失效,该排查哪些配置?
以下是针对该问题的具体排查配置项,按优先级排序:
确认SSI模块已安装并启用
打开IIS管理器,在服务器或站点的「模块」列表中,找到ServerSideIncludeModule,确保它存在且处于启用状态。若未找到,需通过服务器管理器的「Web服务器(IIS)」角色,添加「服务器端包含」功能模块。为.html文件配置处理程序映射
IIS默认仅对.shtml、.shtm、.stm后缀文件启用SSI解析,.html需要手动添加映射:- 进入站点或目标目录的「处理程序映射」,右键选择「添加模块映射」
- 请求路径填写
*.html,模块选择ServerSideIncludeModule,名称可设为「HTML SSI解析」 - 保存后确认该映射处于启用状态
检查站点/目录的SSI启用开关
部分IIS版本中,即使模块和映射配置完成,仍需在站点或目录的「服务器端包含」功能界面(不同版本可能在功能视图或目录属性中),勾选「启用服务器端包含」选项。核对SSI指令的语法与路径
确认.html文件中的SSI指令格式正确,比如标准写法<!--#include file="header.inc" -->,同时检查路径是否与当前.html文件的位置匹配(需和.asp文件的路径上下文保持一致,避免路径错误导致加载失败)。查看IIS日志与浏览器响应
前往IIS默认日志目录C:\inetpub\logs\LogFiles,查看对应.html请求的日志,排查是否有500、404等错误码;也可在浏览器中开启开发者工具,查看.html文件的响应内容——若SSI指令被原样输出,说明未被解析;若存在隐藏错误提示,也能直接定位问题。排查父级配置的继承限制
若仅特定目录的.html页面出现问题,检查父级站点或目录的处理程序映射、SSI设置是否开启了「拒绝继承」,导致子目录的配置被覆盖。
内容的提问来源于stack exchange,提问作者Fliteman

