【问题标题】:Trailing Slash Behavior in Rails ApplicationRails 应用程序中的尾随斜杠行为
【发布时间】:2011-09-05 10:03:06
【问题描述】:

我目前正在尝试使用类别/文章模式来模仿 rails 中的文件夹/文件行为。所以,我在路线上有这个:

 match '/:category/' => 'category#list_articles'
 match '/:category/:article.:format' => 'article#show'

基本上,请求网址是:

http://www.example.com/category/
http://www.example.com/category/article.html

一切正常。问题是它运作良好。像 http://www.example.com/category (不带斜杠)这样的 url 也提供文章列表。它是否存在一种方法来阻止它使用 404 或更好地重定向到带有斜杠的类别?

使用 Rails 3、nginx、ruby 1.9.2。谢谢!

【问题讨论】:

  • 赞成使用“斜线”标签。

标签: ruby-on-rails ruby ruby-on-rails-3 nginx slash


【解决方案1】:

我不确定 rails 中没有什么东西可以为你做这件事,但这应该可以:

class TrailingSlashes                                                                                                      
  def initialize(app)
    @app = app
  end

  def call(env)
    if match = env['REQUEST_PATH'].match(/(.*)\/$/)
      response = Rack::Response.new
      response.redirect(match[1])
      response
    else
      @app.call(env)
    end
  end
end

【讨论】:

    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2022-09-28
    • 2010-09-14
    • 2023-01-30
    相关资源
    最近更新 更多