SSI命令不起作用是针对iis中的shtml文件

时间:2009-08-28 11:42:43

标签: .net iis ssi shtml

以下代码应显示端口或服务器名称,而不是两者。

无论如何,我总是得到两个?

<!--#if expr="${SERVER_PORT} = 80" -->
<!--#echo var="SERVER_PORT"-->
<!--#else -->
<!--#echo var="SERVER_NAME"-->
<!--#endif -->

我也尝试了下面的内容,但没有任何乐趣:

<!--#if expr="${SERVER_PORT} = '80'" -->
<!--#if expr="${SERVER_PORT} = /80/" -->

我该如何运作?

1 个答案:

答案 0 :(得分:4)

如果您使用的是IIS 6,请检查是否允许服务器端包含:

  1. 启动IIS MMC
  2. 展开树并选择“Web服务” 扩展
  3. 检查服务器端包含是否 允许
  4. 如果是,请检查网站属性中是否启用了SSI脚本映射:

    1. 启动IIS MMC
    2. 网站上的右键单击和属性
    3. 选择主目录标签
    4. 点击配置
    5. 验证扩展程序.shtm, shtml and .stm是否已映射到 C:\WINDOWS\system32\inetsrv\ssinc.dll 并且动词设置为GETPOST
    6. <强>更新

      IIS不支持#if/#else/#endif构造或#set。 IIS 6.0的Server Side Include指令在此处记录:

        

      IIS Server-Side Include Directives (MSDN Library)

      这些用于所有意图和目的与IIS 5.1中使用的相同。

      您尝试使用的指令在Apache上受支持,但您应该检查您的主机/管理员以确保它们已启用。有关详细信息,请参阅:

        

      Apache Tutorial: Introduction to Server Side Includes