如何在 Apache 中启用 SSI?

如何在 Apache 中启用 SSI?

我在网上找到了一些信息,但对我来说毫无意义。我想知道我应该进入哪些文件,以及我应该在哪里修改它们以及如何修改它们。

答案1

必须启用此功能(或您的操作系统的等效功能):

LoadModule include_module libexec/apache22/mod_include.so

并为标准方法添加了这些:

AddType text/html .shtml
AddHandler server-parsed .shtml

#This one goes in the <Directory> directive you want them enabled for (ie "/")
Options +Includes 

或者 --x 位 hack:

XBitHack on

最后一个允许您保留正常的 html 名称,但chmod o+x file.html仅为该文件启用 SSI。

其他人都指向旧版文档:Apache mod_include 文档

答案2

当有

SSILastModified on 
XBitHack full

设置“SSILastModified On”是一个无声的错误配置,因为无论“SSILastModified”是否打开,它都不会改变任何程序行为。

通过追溯Apache的源代码,我们可以看到这种错误配置的根本原因是“Xbithack Full”启用的语义隐式覆盖了“SSILastModified On”启用的语义。

if (conf->lastmodified > 0) {
  ... {
   ap_update_mtime(r, r->finfo.mtime);
   ap_set_last_modified(r);}}

else if (((conf->xbithack == XBITHACK_FULL ||
         (conf->xbithack == XBITHACK_UNSET &&
                DEFAULT_XBITHACK == XBITHACK_FULL))
        ...)) {
        ap_update_mtime(r, r->finfo.mtime);
        ap_set_last_modified(r);
}

同样的,如果“Xbithack full”也会覆盖“Xbithack on”。这里,一个可能的解决方案是检查配置文件中是否有“SSILastModified on”或“Xbithack on”。如果是,请将其更改为“Xbithack Full”。

答案3

  • 使用 mod_include 模块构建您的服务器。这通常是默认编译的。
  • 确保您的服务器配置文件具有允许包含的选项指令。
  • 确保“服务器解析”内容处理程序明确地或在某些原始位置覆盖了您希望 SSI 文档所在的目录。可以使用以下 AddHandler 指令来完成此操作:

AddHandler 服务器解析的 .shtml

这表示应解析该位置(或其子代)中所有以“.shtml”结尾的文件。请注意,使用“.html”将导致解析所有普通 HTML 文件,这可能会给您的服务器带来过大的负载。

取自: http://httpd.apache.org/docs/1.3/misc/FAQ.html#ssi-part-i

答案4

http://httpd.apache.org/docs/1.3/misc/FAQ.html#ssi-part-i

有关详细信息,请参阅For more information, seehttp://www.apacheweek.com/features/ssi

请记住,如果您的主机决定禁用 SSI,则没有其他办法。

相关内容