Rails.application.routes.draw do get '/(:locale)/products/(:category)/(page/:page).:extension', :to => 'products#index', :as => :products, :constraints => { :locale => /[a-z]{2}/, :category => /.+?/, :page => /\d+/ }, :defaults => { :page => 1, :extension => 'html', :locale => 'en' } # products_path(:page => 1) # => /products.html # products_path(:page => 2) # => /products/page/2.html # products_path(:page => 2, :locale => 'de') # => /de/products/page/2.html # products_path('computers', :page => 2, :locale => 'de') # => /de/products/computers/page/2.html # products_path('computers/apple', :page => 2, :locale => 'de') # => /de/products/computers/apple/page/2.html # products_path('computers/apple') # => /products/computers/apple.html end