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

8
我们正在关闭The Conversations Network(包括IT Conversations播客)。计划是为永久托管在Internet Archive的网站生成静态HTML版本。

如何最简单地从目前由PHP动态生成的大约5,000个动态页面中生成静态HTML?

我知道我们可以调整代码来缓存PHP输出,将其写入文件,然后遍历站点地图以生成每个页面。但我想知道是否有任何我们应该考虑的选项。有没有工具可以这样做并爬取HTML?(除了Acrobat Pro之外的其他工具?)

不幸的是,我们还有相当数量的Ajax调用,这将使事情变得更加困难。我想我们必须先取消Ajax。


也许互联网档案馆的人会有好主意。 - Barmar
如果Ajax调用是POST调用,那么你就完了。设计网站以便静态工作有益处,特别是为了存档。例如,如果您拥有一个具有有价值内容的网站。但这是一个设计决策,如果您以后需要它,还需要做一些工作。 - hakre
2个回答

5

也许这不是你想要的,但是HTTrack可以浏览您的网站链接并保存HTML版本。该镜像将包括所有链接的静态内容,例如图像、CSS和JavaScript。

我能想到的唯一问题是,如果您的AJAX脚本正在从服务器中提取重要数据,但也许HTTrack有一个设置可以解决这个问题。


2
Httrack提供了很多选项,但对于Ajax调用来说,它远非直截了当。 - hakre

2
有一款名为“Teleport Pro”(不幸的是需要付费)的优秀软件,它可以创建一个可浏览/复制的网站副本。一旦上传到服务器上,这个副本应该与原始网站完全相同。

然而,在将动态页面转换为静态HTML时需要注意以下几点:

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

但是,“Teleport Pro”是一款真正稳定的程序,已经存在了很长时间。我过去曾经使用过它,也可能会再次使用它。


另一种方法可能是使用php模块“php-apc”来创建缓存。在这种情况下,您需要爬取整个网站,以便创建完整的缓存。我对它不是太熟悉,但安装很容易完成,您可以查看生成的文件是否有用。

2
APC缓存不会渲染页面,但会缓存PHP代码,因此这样做是行不通的。 - karka91

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接