我询问的是包含页眉、页脚等文件的其他静态网页。显然,使用 SSI 构建动态站点会更好地使用 PHP。
有没有理由做
<!--#include virtual="../quote.txt" -->
代替
<?php include("../quote.txt"); ?>
(或其他语言的等价物)?
我之所以问,是因为我被赋予了更新当前正在使用 SSI 以在不同页面上包含相同标题的网站的任务。
如果您没有在页面中使用任何其他 PHP,则使用 SSI 意味着您的 Apache 进程不需要加载 PHP 解释器来生成和提供 HTML。
include
不是 PHP 的等价物#include virtual
,那就是:virtual
Docs。
因此,您不仅可以用 PHP 模仿 SSI 指令的作用。
如果您配置了 CGI 处理程序,您甚至可以通过 SSI 运行 PHP。如果mod_php
启用,您可以运行 SSI。
因此,这可能有助于了解您是否重新设计当前站点并可能考虑改变远离 SSI。
有关更多详细信息,请参阅Apache 模块 mod_include。
在某些情况下,SSI 确实很有帮助,例如,当应用程序缓存呈现的页面并且您需要清除缓存但又不想清除所有页面时导致简单的菜单更改。然后,您可以用 ssi 包含替换菜单或多个菜单,并在更改时清除菜单文件,并保持缓存页面不变。