2

有没有办法可以在包含文件中包含包含文件?(快说五倍!)

例如:

index.html里面:

<!--#include virtual="/include-1.shtml"-->

include1.shtml里面:

<!--#include virtual="/include-2.shtml"-->

所以树看起来像这样:index.html <-- include_1.shtml <-- include_2.shtml

照原样,这不适用于我的 Apache。第一个包含工作正常,但嵌套包含的内容不显示。

因为它是相关的,我在 Apache 2 上使用 XBitHack,并且我已经仔细检查了这两个文件是否可以由网络用户执行。

帮助?

4

2 回答 2

4

我知道这个问题已有四年多的历史了,但是为了像我一样通过 StackOverflow惊人的搜索引擎汁找到它的人的利益,这就是我如何使它工作的。

在 Apache2 下,你需要知道这一点

相关文字:

此命令将包含文件的文本插入到已解析文件中。SSI 文件可能是嵌套的,即包含的文件可能包含额外的 SSI 语句(但在这种情况下,无论 XBitHack 的设置如何,都必须具有 .shtml 后缀)

(强调我的)对我来说,解决方案在于取消注释默认的两行httpd.conf

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

...并将第一级包含文件的文件扩展名更改为 .shtml:

索引.html
  └─┬─include1.shtml
    └──── include2.html

繁荣!嵌套 SSI 就像一个冠军。

于 2013-12-04T01:37:04.217 回答
1

确保 Apache 实际上正在尝试处理 *.shtml 文件。试着放

<!--#echo var="DATE_LOCAL" -->

在 *.shtml 文件中查看是否获得预期结果。您在 *.html 文件中得到相同的结果吗?如果您在两者中都没有看到日期,则说明您的配置已关闭。

于 2009-03-17T18:39:11.573 回答