title: how to redirect http to https in Gorilla Mux?
body: <p>I am developing a golang application and I am using <a href="https://github.com/gorilla/mux" rel="noreferrer">Gorilla Mux</a> and <strong>i want to redirect HTTP requests to HTTPS</strong></p>
  
  <p>here is what i have so far</p>
  
  <pre><code>package main
  
  import (
      "net/http"
  
      "github.com/gorilla/mux"
      "github.com/zolamk/deviant/handlers"
      "github.com/zolamk/deviant/lib"
  )
  
  func main() {
  
      router := mux.NewRouter()
      // this is where i am trying to redirect
      router.PathPrefix("/").Schemes("HTTP").HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
  
          http.Redirect(res, req, fmt.Sprintf("https://%s", req.URL), http.StatusSeeOther)
  
      })
  
      router.Handle("/", handlers.ContextHandler(handlers.Index)).Methods("GET")
  
      router.Handle("/register/", handlers.ContextHandler(handlers.Register)).Methods("GET")
  
      router.Handle("/register/", handlers.ContextHandler(handlers.RegisterPost)).Methods("POST")
  
      router.Handle("/login/", handlers.ContextHandler(handlers.Login)).Methods("GET")
  
      router.Handle("/login/", handlers.ContextHandler(handlers.LoginPost)).Methods("POST")
  
      router.Handle("/logout/", handlers.ContextHandler(handlers.Logout)).Methods("GET")
  
      if lib.Settings.ServeStatic {
  
          router.PathPrefix("/public/").Handler(http.FileServer(http.Dir("./")))
  
      }
  
      router.NotFoundHandler = handlers.ContextHandler(handlers.NotFound)
  
      log.Printf("Deviant running @ http://%s\n", lib.Settings.Address)
  
      loggedRouter := handlers.LoggedRouter(os.Stdout, router)
  
      log.Fatal(http.ListenAndServe(lib.Settings.Address, loggedRouter))
  
  }
  </code></pre>
  
  <p>so like i said before <strong>how do i redirect HTTP traffic to HTTPS without affecting my other routes?</strong> Thank You.</p>