SSI IF 语句错误

Posted

技术标签:

【中文标题】SSI IF 语句错误【英文标题】:SSI IF Statement error 【发布时间】:2014-06-20 16:51:53 【问题描述】:

我在使用 SSI 的 if 语句时遇到问题。我已经在两台计算机上重新安装了操作系统(一台使用 win7,另一台使用 win8)并在它们上安装了 WAMP。然后我把我的旧项目放在文件夹中。在我打开使用 SSI 的项目后,如果我收到以下错误消息:

[处理此指令时发生错误]

问题是,当我在工作和笔记本电脑上打开这些文件时,我没有丢失此错误。

之后我切换到 XAMPP,但再次遇到同样的错误。

我正在使用以下语句:

<!--#if expr="$DOCUMENT_NAME = home.html"-->
<body class="home">
<!--#else-->
<body>
<!--#endif-->

而且好像进入了if语句,因为它放了body类“.home”,然后是消息。

其他一切,但 if 语句有效。我已将 header.shtml 和 footer.shtml 分开,ssi 将它们加载到站点中。但是当我使用 if - 时,它会中断。

我不认为这是相关的,但以防万一 - 这就是我的 .htaccess 文件的样子:

Options +Includes
AddHandler server-parsed .shtml .html .htm

【问题讨论】:

【参考方案1】:

您还需要更改 httpd.conf 文件,因为 SSI 在 Apache 中默认未开启。

找到 httpd.conf 文件的这一部分

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

把它改成

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

【讨论】:

不。已经是这样了。 SSI 本身可以工作,但是 if 语句会导致问题。【参考方案2】:

SSILegacyExprParser on 添加到您的.htaccess

请参阅此link。

【讨论】:

以上是关于SSI IF 语句错误的主要内容,如果未能解决你的问题,请参考以下文章

嵌套 if 语句返回语句句柄未执行错误

javascript IF语句错误[重复]

python if语句显示错误[关闭]

if语句基础

为啥错误运行的 IF 语句下的查询?

使用字典替换多 if 语句时计数错误