从SSI中包含PHP的正确方法是什么?

时间:2010-12-16 17:53:30

标签: php ssi

我正在使用一些使用大量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. [有点]并且工作正常,它也可以在托管站点的服务器上运行。那么这个东西在1.3中是不起作用的,但在2中起作用还是我在某种程度上变得幸运并且真的应该以不同的方式做到这一点?

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

感谢您的帮助。

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

1 个答案:

答案 0 :(得分:1)

  

因为这些是静态的,所以有意义   将页面作为.shtml而不是   转换为php包含并作为   .PHP

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