Ruby on rails 在Rails路由中将路径重定向到新域

Ruby on rails 在Rails路由中将路径重定向到新域,ruby-on-rails,ruby,redirect,routing,Ruby On Rails,Ruby,Redirect,Routing,我想将对一个站点上目录中的一组文件/文件夹的请求重定向到新站点上的一个目录(然后是相同的路径) 在my Rails routes.rb中,我有: match '/uploads/*path', :to => redirect{|params, request| "http://othersite.com/uploads/#{params[:path]}"} 我从你那里得到的 它几乎可以工作,除了以下URL: http://currentsite.com/uploads/some/dire

我想将对一个站点上目录中的一组文件/文件夹的请求重定向到新站点上的一个目录(然后是相同的路径)

在my Rails routes.rb中,我有:

match '/uploads/*path', :to => redirect{|params, request| "http://othersite.com/uploads/#{params[:path]}"}
我从你那里得到的

它几乎可以工作,除了以下URL:

http://currentsite.com/uploads/some/directories/filename.pdf
重定向到:

http://othersite.com/uploads/some/directories/filename
我不明白为什么文件扩展名丢失了


(我还想在末尾添加类似于
约束:{:path=>/[\w\-\u\/]+(\.[a-z]+)?/}
的内容,以确保路径模糊有效,但我在尝试解决此问题时已将其取消。)

是否要包括请求格式:

match '/uploads/*path', :to => redirect{|params, request| "http://othersite.com/uploads/#{params[:path]}#{ '.'+params[:format] if params[:format].present? }"}
。。。这是我们认为是文件扩展名的URI部分(例如:
.pdf

不过,只使用完整的传入请求路径(通过
request.full_path
,其中包含URI路径和所有查询参数)可能更为优雅:


很好,谢谢,回答得很快!(8分钟后我才能将其标记为正确,但我稍后会这样做。)干杯!我添加了一个更简单的解决方案,可能也会更好。
match '/uploads/*path', :to => redirect{|params, request| "http://othersite.com/uploads/#{ request.fullpath }" }