そこのドキュメントからpass
、コントロールが渡されるルートが自動的に決定されることがわかります。
名前付きルートに制御を渡すにはどうすればよいですか?
これは私にはうまくいきません:
get '/:title.:ext' do
pass "/old/#{params[:title]}" if params[:ext] == 'php'
# more logic
end
redirect
ユーザーのブラウザのURLを実際に変更する場合は、を使用するか、エンドユーザーから転送を非表示にする場合(つまり、ブラウザのURLは同じままですが、内部的にリクエストが転送される場合)に直接使用できcall!
ます。アプリケーション内の別のルートへ)。
だからあなたの場合、それはどちらかでしょう
redirect "/old/#{params[:title]}" if params[:ext] == 'php'
また
call! env.merge('PATH_INFO' => "/old/#{params[:title]}") if params[:ext] == 'php'