在 Rails 3 上,我试图从没有尾部斜杠的 URL 重定向到具有斜杠的规范 URL。
match "/test", :to => redirect("/test/")
但是,上面的路由匹配/test 和/test/导致重定向循环。
如何让它只匹配没有斜线的版本?
最佳答案
您可以在 Controller 级别强制重定向。
# File: app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
protected
def force_trailing_slash
redirect_to request.original_url + '/' unless request.original_url.match(/\/$/)
end
end
# File: app/controllers/test_controller.rb
class TestController < ApplicationController
before_filter :force_trailing_slash, only: 'test' # The magic
# GET /test/
def test
# ...
end
end
关于ruby-on-rails - 在 Rails 3 中没有尾部斜杠的情况下重定向到规范路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589869/