0

我正在一个使用许多 SSI 的站点上工作。由于这些是静态的,因此将页面作为.shtml而不是转换为 php 包含和作为.php. 现在的问题是,在其中一个包含中,我想用 php 动态生成一些内容。以下是正确的方法还是有其他/更好的解决方案。我现在正在做的是:

<!--test.shtml-->
<!DOCTYPE html>
<html lang="en" dir="ltr">
<body>
<!--#include virtual="/test.php" -->
</body>
</html>

<!--test.php-->
<?php echo 'Hello from php'; ?>

我读过这不应该工作,但我读到的地方,它指的是 Apache 1.3。在我家的服务器上,我正在运行 Apache 2.[something] 并且它运行良好,它也适用于将托管该站点的服务器。那么这是在 1.3 中不起作用但在 2 中起作用的东西,还是我只是以某种方式走运并且真的应该以不同的方式来做呢?

我正在生成的内容只是在网站上的导航中添加一个 css 类/ID,以突出显示当前页面,所以 PHP 似乎有点矫枉过正,因为它在第一次生成后几乎是静态的,我可以缓存我想服务器上的 PHP 输出,但也许首先有更好的方法来做到这一点(?)。

谢谢你的帮助。

编辑 - 不是答案,而是与我的替代方法问题有关。对于我的情况,我找到了一种可能更合适的方法(我不敢说更清洁,因为我确信在奶牛回家之前可以争论)方法。由于我目前没有将 PHP 用于网站上的其他任何内容,所以我现在会坚持使用它。正如Dan M 在这里所概述的那样。

4

1 回答 1

1

由于这些是静态的,因此将页面作为 .shtml 提供而不是转换为 php 包含并作为 .php 提供是有意义的

好吧,由于您在这两种情况下都调用 PHP 引擎,并且在这两种情况下都需要解析整个页面,因此将其作为一个.php页面可能更有意义,因为您可以保证它也可以在 Apache 1.x 服务器上运行。然后,您可以按照您的建议将缓存页面输出为 .html 并让该扩展名优先于DirectoryIndex.

于 2010-12-16T18:07:08.883 回答