Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 机架重写删除斜线(如果不是模式)_Ruby_Regex_Rewrite_Rack - Fatal编程技术网

Ruby 机架重写删除斜线(如果不是模式)

Ruby 机架重写删除斜线(如果不是模式),ruby,regex,rewrite,rack,Ruby,Regex,Rewrite,Rack,我在我的应用程序中使用删除拖尾斜杠,如果找到了,但我只想在不在特定路线上的情况下删除 我使用了类似于: use Rack::Rewrite do r301 %r{^(?!testroute)(.+)/$}, '$1' end 为了实现我所需要的(例如,除了/testroute/之外的所有路由都应该删除任何尾部斜杠)。问题是,即使它击中了那个特定的路径,它也不会忽略它,并且会删除后面的斜杠。是我的正则表达式错了,还是有什么我没有考虑的呢?试着用它来代替 r301 %r{^(?!.*testr

我在我的应用程序中使用删除拖尾斜杠,如果找到了,但我只想在不在特定路线上的情况下删除

我使用了类似于:

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

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

试着用它来代替

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

我可以在同一条规则上强制使用斜杠吗?如果没有斜杠附加,则不必删除它,而可以在这条路径上替换它并将其重新添加<代码>“$1/”但我可以使用两个规则吗,一个是去掉斜杠(只有在不登录时)的规则,另一个是在登录时添加斜杠的规则