我制作了一个具有 URL 形式的网页http://www.example.com/module/content 这是一个非常动态的网页,实际上它是一个网络应用程序。
为了使其尽可能响应,我想使用 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。
你认为最好的方法是什么?也许你自己在实践中尝试过?感谢您的回答!