From 93a35ad2516accdcb9735db509550979d01de2c3 Mon Sep 17 00:00:00 2001 From: Ramires Viana <59319979+ramiresviana@users.noreply.github.com> Date: Wed, 17 Mar 2021 17:54:25 +0000 Subject: [PATCH] fix: prefix handling on http router --- http/data.go | 2 +- http/utils.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/http/data.go b/http/data.go index bc9bdd56..9779cb43 100644 --- a/http/data.go +++ b/http/data.go @@ -73,5 +73,5 @@ func handle(fn handleFunc, prefix string, store *storage.Storage, server *settin } }) - return http.StripPrefix(prefix, handler) + return stripPrefix(prefix, handler) } diff --git a/http/utils.go b/http/utils.go index ce605b36..c1c3fa65 100644 --- a/http/utils.go +++ b/http/utils.go @@ -56,11 +56,13 @@ func stripPrefix(prefix string, h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { p := strings.TrimPrefix(r.URL.Path, prefix) + rp := strings.TrimPrefix(r.URL.RawPath, prefix) r2 := new(http.Request) *r2 = *r r2.URL = new(url.URL) *r2.URL = *r.URL r2.URL.Path = p + r2.URL.RawPath = rp h.ServeHTTP(w, r2) }) }