?_escaped_fragment_ = - 无头浏览器

时间:2011-04-13 08:49:54

标签: ajax hash web-crawler headless-browser

我需要做些什么来为我的服务器添加?_escaped_fragment_=支持?我希望谷歌能够爬过我的ajax网站。我的哈希已经在#!格式

但我不知道如何告诉我的服务器,当我向浏览器输入mywebsite.com/?_escaped_fragment_=section时,网址为mywebsite.com/section,它将等于mywebsite.com/#!

感谢

1 个答案:

答案 0 :(得分:5)

简单回答 - 我的方法(很快将用于具有大约50,000个AJAX生成的URL的站点)是使用无头环境(尝试zombie,phantomjs或任何其他)来加载node.js服务器网站,确保它能够执行javascript并读取DOM - 然后在运行时,如果它是google请求片段,则向node.js服务器发出请求,该服务器加载网站,执行javascript,等待响应,以及传回HTML,输出到浏览器。

如果这听起来像是很多工作 - 我大约90%完成了为您完成所有操作的代码,您只需将一行(PHP)代码放在网站/应用程序的顶部它使用远程node.js服务器完成剩下的工作。

代码将是开源的,所以如果你想在节点服务器上自己设置它,你可以 - 或者如果它是PITA自己设置它,我可能会有一个实时服务器启动并运行你的app / website会触发?_escaped_fragment_个请求,并返回html快照。它还实现了缓存,因此每隔X天只请求一次。

观看这个空间 - 只需要解决一些问题,它就会出现在我的网站上(josscrowcroft.com),我也会把它放在一个github回购中。