我正在阅读关于ajax抓取的谷歌规范; 我理解这个概念,但我需要更多澄清:
我的网址都是这样的:
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”网址中的“/”(例如http://www.website.com/?_escaped_fragment_=eng/home或其他内容?)
我用phantomjs生成HTML快照,但是哪一个是向抓取工具提供这些快照的最佳方式?使用节点js?使用htaccess重写规则?
答案 0 :(得分:5)
好的,因为我终于摆脱了这个,我想分享我找到的方式;
首先,HTML快照必须提供给特定网址
的抓取工具?_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快照......
答案 1 :(得分:1)
通常我不建议付费服务回答SO帖子,但在这种情况下认为你应该考虑使用BromBone - http://www.emberjsseo.com