will_paginateプラグインを使用しています。
/posts/index/2
(の代わりに)キャッシュできるルートを生成する/posts?page=2
ために、routes.rbに以下を追加しました。
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
最初の行は、ページの重複を避けるために、リダイレクトコントローラー /posts/index/1
を使用するようにリダイレクトします。/posts/
'posts/index/:page'
ルールの設定方法に何か問題がありますか?
:requirements => {:page => /\d+/ }
追加することで、パラメーター /post/index/
なしでは機能しないはずですが、キャッシュされると思いました。:page
/posts/index.html
との両方が発生しないようにリダイレクト/posts/index/
するにはどうすればよいですか?/posts/
/posts.html
/posts/index.html
ありがとう
アップデート
単に追加しました
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
そして、私はもう重複したページを取得していません。
しかし、なぜ私が得たのかまだわかりません/posts/index.html
。このルールをより簡潔にする方法についての説明や提案は大歓迎です;)!
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil