如何为所有 html 文件启用 SSI?

如何为所有 html 文件启用 SSI?

我使用 MAMP 开发网站。每个网站都在 htdocs 文件夹中的自己的文件夹中。我管理一个需要使用 ssi 指令的网站,因为主机不允许 php 包含。

我已在 httpd.conf 文件中取消注释以下几行:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

我在 htdocs 文件夹中添加了一个 .htaccess 文件,内容如下:

AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes

在站点索引页上,包含以下内容:

<!--#include file="top-nav.shtml" -->

但它不适用于任何子文件夹中的文件。我收到此错误:

[在执行此命令时出现的错误]

答案1

您是否也在所有子文件夹页面上使用完全相同的include指令?如果是这样,您的问题似乎很明显:您没有正确链接到包含文件(除非您在网站的每个目录中都有相同的文件,但这有点违背了目的)

除此之外,我想知道您在服务器上遇到的错误是什么?您认为 SSI 为何未“启用” - 尤其是考虑到它至少在一个文件上工作。

答案2

不确定这个问题是否已解决,因为问题仍然悬而未决。

补充一些说明。当包含的文件与引用它的文件位于同一目录中时,使用“文件”。当文件位于子目录中时,使用“虚拟”。

此外,这只是我的意见,但将包含的内容放在他们自己的目录中(通常名为“inc”或“includes”)是一种很好的做法。

因此,对于您想要完成的任务,您需要使用...

<!--#include virtual="../inc/top-nav.html" -->

相关内容