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

Posted

技术标签:

【中文标题】如何将动态 (PHP) 网站存档为静态 HTML? [关闭]【英文标题】:How to Archive a Dynamic (PHP) Website as Static HTML? [closed] 【发布时间】:2012-09-18 11:39:40 【问题描述】:

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

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

我知道我们可以调整代码以缓存 PHP 输出,将其写入文件,然后遍历站点地图以生成每个页面。但我想知道是否有任何我们应该考虑的选择。有什么工具可以做到这一点并按原样抓取 HTML? (不是 Acrobat Pro?)

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

【问题讨论】:

也许Internet Archive 的人会有好主意。 如果 Ajax 调用是 POST 调用,那你就完蛋了。设计网站是有好处的,这样它们就可以静态工作,尤其是存档。例如。如果您有一个包含有价值内容的网站。但这是一个设计决定,如果您以后需要,还有一些工作要做。 【参考方案1】:

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

我能想到的唯一问题是您的 AJAX 脚本是否从服务器中提取重要数据,但也许 HTTrack 有一个设置。

【讨论】:

Httrack 提供了很多选项,但是对于 Ajax 调用来说,这远非直接。【参考方案2】:

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

从动态页面创建静态 html 时要记住的事项是;

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

但是“Teleport pro”是一个真正可靠的程序,已经存在了相当长的一段时间。我以前用过,以后可能还会用。


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

【讨论】:

apc 缓存的不是渲染页面而是 php 代码,因此这不起作用

以上是关于如何将动态 (PHP) 网站存档为静态 HTML? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

动态网页问题。

怎样将discuz的动态页面生成HTML的静态页面,以便搜索引擎更好的收录我的网站呢?请高手多多指导!

网站静态化——伪静态&S+E+O

PHP代码实现web页面静态化的功能

认识PHP

phar 存档中的静态内容