Sha*_*man 4 redirect routing ruby-on-rails canonical-link ruby-on-rails-3
在Rails 3上,我试图从不带斜杠的URL重定向到具有斜杠的规范URL。
match "/test", :to => redirect("/test/")
Run Code Online (Sandbox Code Playgroud)
但是,以上路由同时匹配/ test和/ test /,从而导致重定向循环。
如何使其仅与没有斜杠的版本匹配?
您可以在控制器级别强制重定向。
# 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3859 次 |
| 最近记录: |