Rack::LocaleRootRedirect redirects requests to "/" based on the Accept-Language HTTP header.


Add this line to your application’s Gemfile:

gem 'rack-locale-root-redirect'

And then execute:

$ bundle


Add the rack-locale-root-redirect gem in your Gemfile.

gem 'rack-locale-root-redirect'

With Ruby on Rails

Add these lines in your config/application.rb file, along other configuration instructions.

config.use Rack::Accept
config.use Rack::LocaleRootRedirect, fr: '/fr', en: '/en'

With Sinatra

Add these lines in your config.ru file, or wherever your Sinatra application is located.

use Rack::Accept
use Rack::LocaleRootRedirect, fr: '/fr', en: '/en'

The result

$ rackup &

$ curl -sI "" -H "Accept-Language: fr;q=1, en;q=0.8" | grep "302\|Location"
HTTP/1.1 302 Found
Location: /fr

$ curl -sI "" -H "Accept-Language: fr;q=0.4, en;q=0.8" | grep "302\|Location"
HTTP/1.1 302 Found
Location: /en


Rack::LocaleRootRedirect is © 2013-2015 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.