我的SPA使用Backbone.js路由器,它使用 pushstate 和散列 URL 作为后备方法。我打算使用Google 的建议来制作 AJAX web-app crawlable。也就是说,我想将我的网站索引到PhantomJS生成的静态 .html 文件中,并通过 URL 将它们传递给 Google:
mysite.com/?_escaped_fragment_=key=value
.
请记住,该站点不为最终用户提供静态页面(它仅适用于支持 Javascript 的浏览器)。如果您导航到mysite.com/some/url
.htaccess文件,则设置为始终提供服务,mysite.com/index.php
并且主干路由器将读取 URL 以显示该 URL 的 JavaScript 生成内容。
此外,为了让 Google 索引我的整个站点,我计划创建一个站点地图,该站点地图将是一个hashbang URL列表。URL 必须是 hashbanged,以便 Google 知道使用_escaped_fragment_key URL 索引该站点。
呜呜呜……
(1) 这种方法行得通吗?
和
(2) 由于backbone.js 不使用hashbang URL,当用户通过Google 到达时,如何将hashbang URL 转换为pushstate URL?