SSI 命令不适用于 iis 中的 shtml 文件

发布于 2024-08-03 00:38:18 字数 404 浏览 13 评论 0原文

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

无论如何我总是得到两者?

<!--#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/" -->

我如何让它工作?

The following code should show either the port or server name not both.

I always get both no matter what ?

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

I have also tried the following with no joy either:

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

How do I get this working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萧瑟寒风 2024-08-10 00:38:18

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

  1. 启动 IIS MMC
  2. 展开树并选择 Web 服务
    扩展
  3. 检查服务器端包含是否
    允许

如果是,则检查网站属性中是否启用了 SSI 脚本映射:

  1. 启动 IIS MMC
  2. 右键单击​​站点上的属性
  3. 选择主目录选项卡
  4. 单击配置
  5. 验证扩展名 .shtm、
    shtml 和 .stm
    映射到
    C:\WINDOWS\system32\inetsrv\ssinc.dll
    并且动词设置为 GET
    POST

更新

IIS 不支持#if/#else/#endif 构造或#set。 IIS 6.0 的服务器端包含指令记录如下:

IIS 服务器端包含指令(MSDN 库)< /p>

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

Apache 支持您尝试使用的指令,但您应该咨询您的托管商/管理员以确保它们已启用。欲了解更多信息,请参阅:

Apache 教程:服务器端包含简介

If you're using IIS 6 check that Server Side Includes are permitted:

  1. Launch IIS MMC
  2. Expand Tree and select Web Service
    Extensions
  3. Check that Server Side Includes are
    Allowed

If they are, then check that the SSI Script Maps are enabled in the web site properties:

  1. Launch IIS MMC
  2. Right Click and Properties on Site
  3. Select Home Directory Tab
  4. Click Configuration
  5. Verify that the extensions .shtm,
    shtml and .stm
    are mapped to
    C:\WINDOWS\system32\inetsrv\ssinc.dll
    and that the verbs are set to GET
    and POST.

Updated:

IIS doesn't support the #if/#else/#endif construct or #set. IIS 6.0's Server Side Include directives are documented here:

IIS Server-Side Include Directives (MSDN Library)

These are for all intents and purposes the same as those used in IIS 5.1.

The directives you're trying to use are supported on Apache, though your should check with your hoster/admin to make sure they're enabled. For more info see:

Apache Tutorial: Introduction to Server Side Includes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文