module Roda::RodaPlugins::RedirectHttpToHttps

The redirect_http_to_https plugin exposes a redirect_http_to_https request method that redirects HTTP requests to HTTPS, helping to ensure that future requests by the same browser will be submitted securely.

You should use this plugin if you have an application that can receive requests using both HTTP and HTTPS, and you want to make sure that all or a subset of routes are only handled for HTTPS requests.

The reason this exposes a request method is so that you can choose where in your routing tree to do the redirection:

route do |r|
  # routes available via both HTTP and HTTPS
  r.redirect_http_to_https
  # routes available only via HTTPS
end

If you want to redirect to HTTPS for all routes in the routing tree, you can have this as the very first method call in the routing tree. Note that in Roda it is possible to handle routing before the normal routing tree using before hooks. The static_routing and heartbeat plugins use this feature. If you would like to handle routes before the normal routing tree, you can setup a before hook:

plugin :hooks

before do
  request.redirect_http_to_https
end