redirect に渡すブロックの中で、 req.params にリクエストされたパラメータが入っているのでそれを使う
get :foo, to: redirect { |params, req| req.params[:bar].present? ? "/foo/#{req.params[:bar]}" : "/baz" }
こうすることで
/foo # /baz へリダイレクト
/foo?bar=qux # /foo/qux へリダイレクト
とすることができる
params でも取れそうな気がするが、よくわからないがダメだった