SSI IF语句错误

时间:2014-05-04 09:30:16

标签: apache xampp wamp ssi server-side-includes

我对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

2 个答案:

答案 0 :(得分:2)

SSILegacyExprParser on添加到.htaccess

请参阅此link

答案 1 :(得分:0)

您还需要更改httpd.conf文件,因为默认情况下Apache中没有打开SSI。

查找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