最近,我阅读了很多关于 hash-bang url 与 history.pushState 的对比,以构建对 SEO 友好的 AJAX 站点。似乎每个人都同意 pushState 是更好的方法,所以我想使用它。
这就是问题所在:我有一个单页网站和(在服务器上)一个包含大约 300 万个条目的数据库——我没有所有这些条目的静态页面,而是使用 AJAX 获取它们并将它们插入到站点中(如果用户单击某个链接或执行搜索)。
使用 HashBang-URLs 我知道蜘蛛会寻找不同的 URL (escaped_fragment...),所以在服务器端我可以提供一个“丑陋”的页面,它不包含任何样式,但只包含我想要索引的内容。
用户可以为 URL 添加书签并获得漂亮的内容,因为 URL 不同(#!...)并且 Javascript 将生成内容。
另一方面,使用 history.pushState,我将被迫使用像 '...getItem.php?itemid=356375' 这样的 URL(对吗?)——但现在,我不能再在这里提供丑陋的内容,因为用户可能会为这些 URL 添加书签.
所以,简而言之:
Hash-Bang 让我们可以专注于通过 javascript 渲染客户端漂亮的内容,同时为搜索引擎提供“丑陋”的纯内容页面——PushState 迫使我们在不使用 javascript 的情况下一直提供漂亮的内容?
有什么解决方法吗?有什么方法不必在服务器端(在我的情况下是 PHP)上提供漂亮的内容,同时仍然让用户可以为提供漂亮内容的 URL 添加书签(通过 Javascript)?