diff --git a/internal/net/http/middleware/redirect_http.go b/internal/net/http/middleware/redirect_http.go index 595580e..e82b573 100644 --- a/internal/net/http/middleware/redirect_http.go +++ b/internal/net/http/middleware/redirect_http.go @@ -2,6 +2,7 @@ package middleware import ( "net/http" + "strings" "github.com/yusing/go-proxy/internal/common" ) @@ -10,7 +11,12 @@ var RedirectHTTP = &Middleware{ before: func(next http.HandlerFunc, w ResponseWriter, r *Request) { if r.TLS == nil { r.URL.Scheme = "https" - r.URL.Host = r.URL.Hostname() + ":" + common.ProxyHTTPSPort + host := r.Host + if i := strings.Index(host, ":"); i != -1 { + host = host[:i] // strip port number if present + } + r.URL.Host = host + ":" + common.ProxyHTTPSPort + logger.Info().Str("url", r.URL.String()).Msg("redirect to https") http.Redirect(w, r, r.URL.String(), http.StatusTemporaryRedirect) return }