我无法让 IIS 尊重我的 SSI 指令 - 它只是输出 #include 指令,就好像它是常规的旧 html 一样。
以下是相关数据点:
- 我的包含include指令的文件名为index.html
- 这是我的指令:(
<!-- #include file = "header.shtml" -->
它也不起作用virtual
。) - 所请求的文件与正在被请求的文件位于同一目录中
包括。
- SSI 模块已安装。
- SSINC-shtml 处理程序映射存在并已启用。
我认为这可能是某种权限问题(读/写/执行),但我不知道这些设置在 IIS 7.5 中的哪里。
答案1
问题在于该文件名为 index.html,默认情况下未映射到 SSI 处理程序。以下任一操作均可:
- 将 .html 文件扩展名映射到 SSI 处理程序,从而调出另一个问题 或者
- 将文件重命名为 index.shtml
答案2
在 IIS Mgr 中,单击服务器/站点节点(适合您环境的级别),然后单击处理程序映射。双击映射SSINC-shtml
,然后单击Request Restrictions...
按钮。检查那里所有 3 个选项卡中的设置,看看是否有设置不正确的地方。
答案3
Windows 7 上的 IIS 7 默认未启用服务器端包含。
在“控制面板”>“程序”中,打开“Windows 功能”并关闭:
勾选该选项:
Internet Information Services
Application Development Features
[x] Server-Side Includes