我创建了一个URL形式为http://www.example.com/module/content 的网页,实际上是一个非常动态的网页,也是一个Web应用程序。为了使其尽可能响应迅速,我想使用AJAX而不是普通的页面请求。这也使我能够使用JavaScript添加一层以提供脱机功能。我的问题只是:我应该如何制作这些URL?它们应该是http://www.example.com/module/content还是http://www.example.com/#!/module/content?如果您已经对此有清晰的看法,则可以不必阅读接下来的内容。我想使用第一个版本,因为我想支持新的HTML5标准。它易于使用,URL看起来很漂亮。但更重要的是,它允许我做到这一点:如果用户请求页面,它将返回完整的HTML页面。如果用户点击链接,则将通过AJAX仅将内容插入到容器div中。这将使没有JavaScript的用户能够使用我的网站,因为它不需要使用JavaScript,它只是使用旧的“单击链接-请求-获取完整html页面”的方法。虽然这很棒,但问题当然是Internet Explorer。只有IE的最新版本支持History API,为了在旧版本中使其工作,需要使用井号。 (我的用户中50%将使用IE,因此我需要支持它...) 因此,我必须使用/#!/来使其工作。如果同时使用这两个URL版本,则会出现问题,即如果IE用户将此链接发布到网站上,Google将向服务器发送一个_unescaped_string(或类似的内容),并将以带有井号的IE版本索引页面。而一些页面则没有井号。
正如我们所记得的,非哈希标签在许多方面都更好。那么,这个搜索引擎问题能够被规避吗?是否可以告诉GoogleBot,如果它正在查找网站的哈希标签版本,应该重定向到网页的非哈希标签版本?这样,就可以获得所有非哈希URL的好处,并仍然支持IE6-IE9。
你认为最好的方法是什么?也许你自己在实践中尝试过? 感谢您的答案!