我理解这个概念,但我需要更多澄清:
我的网址都是这样的:
http://www.website.com/#!/eng/home http://www.website.com/#!/eng/contacts ...
我必须在这些地址提供html快照:
http://www.website.com/?_escaped_fragment_=/eng/home http://www.website.com/?_escaped_fragment_=/eng/contacts ...
它是否正确?或者我应该删除“escaped_fragment”URL中的“/”(例如http://www.website.com/?_escaped_fragment_=eng/home或其他什么?)
我用phantomjs生成HTML快照,但是哪一个是向爬虫提供这些快照的最佳方式?使用节点js?使用htaccess重写规则?
解决方法
首先,HTML快照必须提供给特定URL的爬虫
?_escaped_fragment_=
正在取代
#!
所以如果你有:
http://www.website.com/#!/eng/home
您的服务器必须提供快照:
http://www.website.com/?_escaped_fragment_=/eng/home
如果有人对我用来生成快照的方法感兴趣,我只需使用一个名为judo的节点模块(https://npmjs.org/package/judo);
为了使用它,您需要在服务器上安装phantomjs(http://phantomjs.org/)和节点(http://nodejs.org/); (有关如何在服务器上安装phantomjs的更多信息:How can I setup & run PhantomJS on Ubuntu?)
一旦你安装了所有东西,你只需要使用柔道(例如柔道.js)编写一个js文件(按照我之前链接的文档页面,你将在5分钟内准备好);将文件上传到服务器上并使用node执行该文件以创建快照和站点地图;
在此之后,当他要求提供HTML快照时,你需要为google的抓取工具提供服务吗?_escaped_fragment_ = URL;我认为最简单的方法是.htaccess文件;特别是你需要3行代码,在我的例子中是:
RewriteEngine On RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/(.*)$ RewriteRule ^$/SEO/snapshots/%1\.html [L]
(因为我的judo.js文件在/ SEO / snapshots目录中创建了快照)
最后,您可以使用Google网站管理员工具面板中的“以谷歌搜索”选项查看所有内容是否正常工作;如果你做的都正确,你会看到结果是HTML快照……