Как сделать Redirect в gorilla mux golang?
Пишу API сервер и столкнулся с проблемой редиректа. Можете написать пример, как сделать редирект с помощью библиотеки gorilla?
Ответы (1 шт):
Автор решения: noname2019
→ Ссылка
англоязычная версия сайта с вопросом и ответом по данной теме
func RedirectToHTTPSRouter(next http.Handler) http.Handler {
return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
proto := req.Header.Get("x-forwarded-proto")
if proto == "http" || proto == "HTTP" {
http.Redirect(res, req, fmt.Sprintf("https://%s%s", req.Host, req.URL),
http.StatusPermanentRedirect)
return
}
next.ServeHTTP(res, req)
})
}
func main() {
router := mux.NewRouter()
httpsRouter := RedirectToHTTPSRouter(router)
log.Fatal(http.ListenAndServe(lib.Settings.Address, httpsRouter))
}