1

私は現在、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、ruby1.9.2を使用します。ありがとう!

4

1 に答える 1

2

あなたのためにそれを行う何かがレールにないかどうかはわかりませんが、これでうまくいくはずです:

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
于 2011-05-31T12:57:28.617 に答える