Fix scheme determination behind reverse proxies #23
@@ -104,9 +104,18 @@ func getPublicUrl(r *http.Request, subpath string) string {
|
||||
Host: r.Host,
|
||||
Path: path.Join("public", subpath),
|
||||
}
|
||||
newURL.Scheme = "http"
|
||||
if r.TLS != nil {
|
||||
newURL.Scheme = "https"
|
||||
}
|
||||
newURL.Scheme = determineScheme(r)
|
||||
return newURL.String()
|
||||
}
|
||||
|
||||
func determineScheme(r *http.Request) string {
|
||||
if proto := r.Header.Get("X-Forwarded-Proto"); proto != "" {
|
||||
return proto
|
||||
}
|
||||
|
||||
if r.TLS != nil {
|
||||
return "https"
|
||||
}
|
||||
|
||||
return "http"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user