在我的Rails应用程序中有两个URL,例如
http://myurl/foo/bar
http://myurl/foo//bar
以相同的方式处理。 Rails非常聪明地忽略斜杠之间的空属性,但当我用前端Javascript框架链接所有东西时它就成了问题;我的前端路由系统因此而爆炸。
在我看来,这应该被理解为Rails在URL中的一个问题,因为它看起来更严格和合乎逻辑。
因此,当routes.rb
在路径中检测到//
时,我想简单地将用户重定向到主页;这怎么可能?
谢谢;)
编辑:
我试过这种事情
match ':url' => redirect('/'), :constraints => { url: /\/+/ }, via: [:get, :post]
它不起作用,看起来路径文件是在rails首先操作绝对URL之后读取的,或类似的东西......
答案 0 :(得分:0)
我会尝试编写正则表达式,在将路由传递给特定控制器以处理路由之前验证路由。如果验证证明url无效,则重定向到归属路由