ruby-on-rails – 为什么linkedIn在我的URL中添加了一个感叹号(hashbang)?

在分享链接时,我注意到linkedIn附加了一个’#!’重定向后到URL的末尾.这打破了我的Backbone.js单页应用,因为我们在URL中使用了pushstate,所以’!’被解释为Backbone.js路由.

这是一个例子link(不是我的网站).它会带你到:
http://blog.mindresearch.net/blog/bid/336633/The-Connection-Between-Math-and-Neuroscience#

我知道我可以在服务器端过滤这个,或者在客户端以多种方式处理它,但它看起来很奇怪,我看到没有关于这个主题的在线帖子,所以我想发一个问题询问是什么,以及是否有办法摆脱它?

当然,我也会通过电子邮件发送LinkedIn支持,但认为这对遇到同样问题的其他人有用.

最佳答案 散列后的AFAIK没有发送到服务器;我使用简单的客户端脚本来重定向这些URL.一个天真的重定向,但它的工作原理.我没有看到任何阻止它发生的方法,除非LinkedIn和Facebook改变他们的传出重定向政策.

<script>
  if( window.location.hash == '#!' ) {
    window.location.href = 'http://domain.tld/';
  }
</script>

当然它只适用于支持JavaScript的客户端,但是根据我的经验,这些hashbang URL只会破坏这些客户端.

点赞