如何将动态(PHP)网站存档为静态HTML?

Dou*_*aye 8 php caching render static-html web-scraping

我们正在关闭Conversations Network(包括IT Conversations播客).计划是在Internet Archive上呈现我们网站的静态HTML版本,以便永久托管.

从目前从PHP动态生成的大约5,000个动态页面生成静态HTML的最简单方法是什么?

我知道我们可以调整代码来缓存PHP输出,将其写入文件,然后遍历站点地图以生成每个页面.但我想知道是否有任何我们应该考虑的选择.用于执行此操作并按原样刮取HTML的任何工具?(Acrobat Pro以外的其他东西?)

不幸的是,我们也有相当数量的Ajax调用,这将使这更加困难.我想我们必须首先取消Ajax.

Zar*_*Zar 5

它可能不是你想要的; 但HTTrack将浏览您的网站以获取链接并保存其HTML版本.此镜像将包含链接的所有静态内容,例如images,css和javascript.

我能想到的唯一问题是你的AJAX脚本是否正在从服务器中提取重要数据,但是HTTrack可能有这样的设置.

  • Httrack 提供了很多选项,但是对于 Ajax 调用来说,它远非直截了当。 (2认同)

Roy*_*obs 2

有一个很棒的软件叫做“ Teleport Pro ”(不幸的是付费软件),它可以创建网站的可浏览/重复副本。一旦上传到服务器,其工作方式应该与原始站点完全相同。

当您从动态页面创建静态 html 时,需要记住的事情是:

  • 您当前的 ajax 调用需要取消 ajax(正如您自己所说)
  • .htaccess 设置,例如 mod_rewrite 可能会使您的静态文件变得毫无价值。因为链接可能不起作用。

但“Teleport pro”是一个真正可靠的程序,已经存在相当长一段时间了。我过去曾使用过它,并且可能会再次使用它。


另一种方法可能是 php 模块“php-apc”,它创建一个缓存。在这种情况下,您需要在创建完整的缓存之前抓取整个站点。我不太熟悉它,但安装很容易完成,你可以看看生成的文件是否有任何用处。

  • apc 缓存的不是渲染的页面,而是 php 代码,因此这不起作用 (2认同)