为什么具有片段标识符(#)的非规范URL与`_escaped_fragment_`查询参数共享



我正在使用Facebook的共享对话框来共享一个URL,比如。。。

http://www.example.com/products/9-some-name#!23

在该页面的HTML中,一个不同的URL(也带有片段标识符)被指定为规范URL,如

<link rel="canonical" href="http://www.example.com/products/9-canonical-name#!23">
<meta property="og:url" content="http://www.example.com/products/9-canonical-name#!23">

在我的Facebook个人资料中,共享的URL显示为

http://www.example.com/products/9-canonical-name?_escaped_fragment_=23

那是个虫子吗?(我希望共享URL按原样发布,即不是规范的URL,并且没有任何转换。)

更新

经过更多的调查,我意识到这与片段标识符无关。根本问题是,Facebook在用户档案中发布的URL是og:url中的URL,而不是最初共享的URL。这似乎是无法改变的(正如我从一个相关问题中所理解的)。

根据在Facebook上分享最佳实践的文档,og:url应该是一个没有会话id或无关参数的url。Facebook上的所有共享都将使用og:url作为识别url。

developers.facebook.com/docs/shareing/最佳实践#标签

最新更新