将HTML解析为PHP

moe*_*oey 2 html php apache configuration apache2

如果我们设置Apache Web服务器以配置Apache以将所有 HTML作为PHP 处理,是否存在任何安全/性能问题?我特别指的是:

AddType application/x-httpd-php .php .php3 .php4 .html
Run Code Online (Sandbox Code Playgroud)

我遇到的情况是我需要在一些HTML文件中添加一些PHP逻辑; 理想情况下,我没有要改变文件名如page.htmlpage.php(保持网页排名等进行page.html).

这与以下问题有关:httpd AddType指令

编辑: 从下面的现有答案/评论看,社区建议使用重定向或仅定位特定的HTML文件.限制是我正在重新设计一个现有的站点(400多个HTML页面;每个页面都使用某种Dreamweaver模板,从不同的文件中提取页眉和页脚).我希望完全回避Dreamweaver进入非专有的东西.所以,我有两个选择:

  1. 使用服务器端包含(SSI)来拉入页眉和页脚.这将导致我的所有HTML文件都使用SSI进行修饰.
  2. 撒上一些PHP代码段以包含页眉和页脚.对于这个选择,我必须确保文件名保持不变.

Chr*_*ker 6

服务器确定需要通过PHP解释器传递的文件越多,涉及的开销就越多,但我认为这不用说.如果您的网站没有包含普通HTML的任何页面,那么您已经支付了可能支付的所有性能损失 - 在这种情况下将HTML添加到列表中并不是简单地将所有文件重命名为.php延期.

真正的性能损失会来,如果你有普通的HTML页面-服务器将不必要通过这些页面给PHP解释当没有必要.但即便如此,它并不引人注目 - 这些HTML页面不需要PHP解释器,因此除了确定它不需要做任何事情之外它不会做任何事情.这有成本,但并不重要.

现在,如果我们在这里谈论大量,那么每一点性能都很重要,这不是一个切实可行的解决方案.然而,对于中低容量的站点,性能损失将是无法实现的.

如果这是一次性更改并且受影响的文件数量有限,则使用FilesMatch指令可能更为保守.

<FilesMatch "^(file_one|file_two|file_three)\.html$">
  AddType application/x-httpd-php .html
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)