feat(lib): enable multiple consecutive slash support

Replaces #808
Closes #754

Some web applications require the ability to include multiple
consecutive slashes in a URL. This could be for optional path variables
or for wiki article titles that start with a leading slash.

I wasn't aware that the RFC allowed this.

Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
Xe Iaso
2025-07-12 17:57:32 +00:00
parent 29622e605d
commit 2ea8296682
4 changed files with 64 additions and 2 deletions

View File

@@ -200,7 +200,12 @@ func (s *Server) respondWithStatus(w http.ResponseWriter, r *http.Request, msg s
}
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
s.mux.ServeHTTP(w, r)
switch strings.HasPrefix(r.URL.Path, anubis.StaticPath) {
case true:
s.mux.ServeHTTP(w, r)
case false:
s.maybeReverseProxyOrPage(w, r)
}
}
func (s *Server) stripBasePrefixFromRequest(r *http.Request) *http.Request {