Rack middleware to force subdomain redirects, e.g: www or www2
gem 'rack-www'
Usage (by default it will redirect all requests to www subdomain):
config.middleware.use Rack::WWW
Customizing the :www option to true or false:
#redirects all traffic to www
config.middleware.use Rack::WWW, www: true
#redirects all traffic to the same domain without www
config.middleware.use Rack::WWW, www: false
Redirecting to a given subdomain:
config.middleware.use Rack::WWW, :subdomain => "secure"
If you like it's also possible to show a message while redirecting the user:
config.middleware.use Rack::WWW, :www => false, :message => "You are being redirected..."
You can optionally specify predicate to determine if redirect should take place:
config.middleware.use Rack::WWW, :predicate => lambda { |env|
!Rack::Request.new(env).params.has_key? "noredirect"
}
Specifying host-regex to determine on what hosts to redirect:
config.middleware.use Rack::WWW, :host_regex => /example/i
This will only redirect when the host matches example
, such as example.com
or example1.com
. It won't redirect on localhost
or any other host that does not match the regex
It ignores any redirects when using IP addresses.
- :www => default is true, redirects all traffic to www;
- :subdomain => redirects to any given subdomain;
- :message => display a message while redirecting;
- :host_regex => redirects if the given host match
MIT License. Copyright Jhimy Fernandes Villar http://stjhimy.com