【问题标题】:rack-rewrite remove slashes if not patternrack-rewrite 如果不是模式,则删除斜杠
【发布时间】:2014-04-27 15:06:16
【问题描述】:

我在我的应用程序中使用rack-rewrite 来删除尾部斜杠(如果找到的话),但我只希望它不在特定路线上。

我用过类似的东西:

use Rack::Rewrite do
  r301 %r{^(?!testroute)(.+)/$}, '$1'
end

为了实现我所需要的(例如,除了/testroute/ 之外的所有路由都应该删除任何尾部斜杠)。问题是即使它击中了该特定路线,它也不会忽略它并删除尾部斜杠。我的正则表达式是错误的,还是有什么我没有考虑的?

【问题讨论】:

    标签: ruby regex rewrite rack


    【解决方案1】:

    尝试改用这个。

    r301 %r{^(?!.*testroute)(.+)/$}, '$1'
    

    【讨论】:

    • 我可以在同一条规则上使用斜线吗?
    • 在这条路线上,而不是删除尾部斜杠附加,如果它不存在的话
    • 您可以随时替换它并重新添加它。 '$1/'
    • 但是我可以使用两条规则,一条去掉斜杠(仅在未登录时),另一条在登录时添加斜杠
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    相关资源
    最近更新 更多