这是一个非常动态的网页,实际上它是一个网络应用程序.
为了使其尽可能的响应,我想使用AJAX而不是正常的页面请求.这也使我能够使用JavaScript添加一个图层来提供离线功能.
我的问题只有:我该如何使URL?应该是http://www.example.com/module/content还是http://www.example.com/#!/module/content?
以下只是我在双向的想法.如果您已经清楚地考虑到这一点,您不需要阅读它.
我想使用第一个版本,因为我想支持新的HTML5标准.它很容易使用,URL看起来很漂亮.但更重要的是它允许我这样做:
If the user requests a page,it will get a full HTML page back.
If the user then clicks a link,it will insert only the contents into the container div via AJAX.
这将使无JavaScript的用户使用我的网站,因为它不需要使用JavaScript,它将简单地使用普通的旧的“点击一个链接请求 – 获取完整的html页面返回”-approach.
虽然这很棒,但问题当然是Internet Explorer.只有最后一个版本的IE支持History API,并且要使其在旧版本中工作,需要使用主题标签. (我的用户的50%将使用IE,所以我需要支持…)所以我必须使用/#!/来使它工作.
如果使用这两个URL版本,则会出现问题,如果IE用户将此链接发布到网站,Google将向服务器发送_unescaped_string(或类似的..),并且将使用IE版本对页面进行索引井号.有些页面将不会有标签标签.
而且我们记得,非标签标签在许多不同的事情上是更好的.那么这个搜索引擎的问题可以避免吗?有可能告诉GoogleBot,如果达到网站的主题标签版本,它应该被重定向到网页的非标签版本?这样,可以获得非标签网址的所有好处,并且仍然支持IE6-IE9.
你认为最好的方法是什么?也许你在实践中试过了吗?
感谢您的回答!
解决方法
如果你真的喜欢漂亮的HTML5网址没有#!那么,是的,你可以同时支持无索引的问题!只需添加:
<link rel="canonical" href="preferredurl" />
到< head>每个页面的部分(初始加载),以便帮助Google知道您希望使用哪个版本的URL.阅读更多关于canonical urls here.