Rails应用程序中的尾随斜杠行为



我目前正在尝试用category/articles模式模拟rails中的文件夹/文件行为。所以,我在路线上有这个:

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

基本上,请求URL是:

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。谢谢

我不确定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

相关内容

  • 没有找到相关文章

最新更新