【问题标题】:Rails 301 Redirection from /de to /de/Rails 301 从 /de 重定向到 /de/
【发布时间】:2018-12-28 09:04:33
【问题描述】:

如何从

进行重定向

http://bla.com/dehttp://bla.com/de/

我试过了

get '/de', to: redirect('de/', status: 301)


get "/de" => redirect("/de/")

但我有一个错误 错误:重定向过多

我的错误在哪里?

 [Anonymous user] Started GET "/de" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200
[Anonymous user] Started GET "/de/" for 127.0.0.1 at 2018-12-28 11:03:15 +0200

【问题讨论】:

    标签: ruby-on-rails ruby routes http-status-code-301


    【解决方案1】:

    首先,rails 不区分正斜杠或尾部斜杠。这就是您收到太多重定向错误的原因。

    实现此目的的一种方法是在 ApplicationController 中定义一个方法,然后将其用作过滤器来重定向您的请求

    def force_trailing_slash
        redirect_to request.original_url + '/' unless request.original_url.match(/\/$/)
    end
    

    或者您可以使用 rack-rewrite 在您的 Rails 应用程序中的机架级别执行相同的任务。

    https://github.com/jtrupiano/rack-rewrite

    config.middleware.insert_before 0, Rack::Rewrite do
      r301 '/de', '/de/'
    end
    

    另一种可能有帮助的方法是:

    get '/de', :to => redirect('de/'), :constraints => lambda {|r| !r.original_fullpath.end_with?('/')}
    

    希望这会有所帮助!

    【讨论】:

    猜你喜欢
    • 2014-04-20
    • 2017-04-03
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    相关资源
    最近更新 更多