diff --git a/transfersh-server/handlers.go b/transfersh-server/handlers.go index a6c04ef..a4fd93f 100644 --- a/transfersh-server/handlers.go +++ b/transfersh-server/handlers.go @@ -506,13 +506,22 @@ func getHandler(w http.ResponseWriter, r *http.Request) { func RedirectHandler(h http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - if ipAddrFromRemoteAddr(r.Host) != "transfer.sh" && ipAddrFromRemoteAddr(r.Host) != "127.0.0.1" && r.URL.Path != "/health.html" { - http.Redirect(w, r, "https://transfer.sh/", 301) - return - } + if r.URL.Path == "/health.html" { + } else if ipAddrFromRemoteAddr(r.Host) == "127.0.0.1" { + } else if ipAddrFromRemoteAddr(r.Host) == "transfersh.elasticbeanstalk.com" { + } else if ipAddrFromRemoteAddr(r.Host) == "jxm5d6emw5rknovg.onion" { + if r.Header.Get("X-Forwarded-Proto") != "https" && r.Method == "GET" { - if ipAddrFromRemoteAddr(r.Host) == "transfer.sh" && r.Header.Get("X-Forwarded-Proto") != "https" && r.Method == "GET" { - http.Redirect(w, r, "https://transfer.sh/", 301) + http.Redirect(w, r, "https://jxm5d6emw5rknovg.onion"+r.RequestURI, 301) + return + } + } else if ipAddrFromRemoteAddr(r.Host) == "transfer.sh" { + if r.Header.Get("X-Forwarded-Proto") != "https" && r.Method == "GET" { + http.Redirect(w, r, "https://transfer.sh"+r.RequestURI, 301) + return + } + } else if ipAddrFromRemoteAddr(r.Host) != "transfer.sh" { + http.Redirect(w, r, "https://transfer.sh"+r.RequestURI, 301) return }