diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-02 18:42:09 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-15 13:40:09 +0900 |
| commit | 0ee13791fbf81f588f840578e5c3854a7eb06133 (patch) | |
| tree | 7834c620aef70290331d43007bcfa92d0f1a3d89 | |
| parent | db465fd91e16560c5b32135764d70e5d51e169b8 (diff) | |
| download | mioproxy-0ee13791fbf81f588f840578e5c3854a7eb06133.tar.gz mioproxy-0ee13791fbf81f588f840578e5c3854a7eb06133.tar.zst mioproxy-0ee13791fbf81f588f840578e5c3854a7eb06133.zip | |
fix: do not rewrite scheme if HTTPS is not served
| -rw-r--r-- | server.go | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -52,9 +52,9 @@ func basicAuthHandler(handler http.Handler, realm, username, passwordHash string }) } -func newMultipleReverseProxyServer(ps []ProxyConfig) (*multipleReverseProxyServer, error) { +func newMultipleReverseProxyServer(cfg *ServerConfig) (*multipleReverseProxyServer, error) { var rules []rewriteRule - for _, p := range ps { + for _, p := range cfg.Proxies { targetUrl, err := url.Parse(fmt.Sprintf("http://%s:%d", p.To.Host, p.To.Port)) if err != nil { return nil, err @@ -85,7 +85,7 @@ func newMultipleReverseProxyServer(ps []ProxyConfig) (*multipleReverseProxyServe return nil } locationUrl.Host = p.From.Host - if locationUrl.Scheme == "http" { + if cfg.RedirectToHTTPS && locationUrl.Scheme == "http" { locationUrl.Scheme = "https" } r.Header.Set("Location", locationUrl.String()) @@ -158,7 +158,7 @@ func NewServer(cfg *ServerConfig) (*Server, error) { http.Redirect(w, r, target.String(), http.StatusMovedPermanently) }) } else { - reverseProxyServer, err := newMultipleReverseProxyServer(cfg.Proxies) + reverseProxyServer, err := newMultipleReverseProxyServer(cfg) if err != nil { return nil, err } |
