From 51f9afb4716f557de41a678ed032f3d1f54e8ada Mon Sep 17 00:00:00 2001 From: yusing Date: Sat, 30 Nov 2024 08:58:30 +0800 Subject: [PATCH] fixed redirectHTTP middleware --- internal/net/http/middleware/redirect_http.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 }