package middleware import ( "net/http" "github.com/aerogo/aero" ) // HTTPSRedirect middleware redirects to HTTPS if needed. func HTTPSRedirect(next aero.Handler) aero.Handler { return func(ctx aero.Context) error { request := ctx.Request() userAgent := request.Header("User-Agent") isBrowser := userAgent != "" if isBrowser && request.Scheme() != "https" { return ctx.Redirect(http.StatusPermanentRedirect, "https://"+request.Host()+request.Path()) } // Handle the request return next(ctx) } }