在Backbone路由中匹配空路由和尾部斜杠?

Rai*_*l24 2 javascript url-routing backbone.js trailing-slash

我知道有一些重复内容(SEO)的问题,但这不是我的项目所关注的.

在我的骨干路由器中,我有这个:

routes: {
    "": "startOrder",
    "order/:orderNumber/:stepName": "getOrder",
    "order/:orderNumber/:stepName/": "getOrder"
},
Run Code Online (Sandbox Code Playgroud)

请注意,第二条和第三条路线导致相同的事情.

问题是如果有人输入一个以"/"字符结尾的URL,我希望它调用一个单独的函数(然后删除斜杠),但这不会发生,它总是匹配空白路由.然后我会在以后遇到问题,因为URL有一个不应该的斜杠.

我错过了什么吗?

mln*_*ncn 6

现在可以在括号内添加斜杠作为路径的可选部分:

var Router = Backbone.Router.extend({
  routes: {
    'order/:orderNumber/:stepName(/)': 'getOrder'
  },
  // ...
});
Run Code Online (Sandbox Code Playgroud)

从一个非常全面的问题线程,关于Backbone路由末尾的斜杠主题.

但正如该线程中所述,为了防止为您的页面记录多个URL,最好在Apache或其他服务器配置中删除路径末尾的斜杠.