Fix relative redirects

Setting next.Host before setting next.Path breaks relative redirects on
external sites, where next.Host != r.URL.Host.
This commit is contained in:
Adnan Maolood 2021-02-24 17:50:31 -05:00 committed by Drew DeVault
parent 1975525eeb
commit 6d23d00a6f

View file

@ -426,10 +426,10 @@ func proxyGemini(req gemini.Request, external bool, root *url.URL,
w.Write([]byte(fmt.Sprintf("This page is redirecting you to %s", next.String())))
return
}
next.Host = r.URL.Host
if external {
next.Path = fmt.Sprintf("/x/%s/%s", next.Host, next.Path)
}
next.Host = r.URL.Host
next.Scheme = r.URL.Scheme
w.Header().Add("Location", next.String())
w.WriteHeader(http.StatusFound)