Fix infinite redirect bug.

Previously, URLs without trailing slashes in the path which
resolved to directories caused infinite redirects if there was
anything in the URL after the path (like a query).

Thanks to both Luke Emmet and Stephane Bortzmeyer for reporting
this!
pull/21/head
Solderpunk 2 years ago
parent 3d4d830e98
commit e06f8bddbc
  1. 3
      handler.go

@ -205,7 +205,8 @@ func serveDirectory(URL *url.URL, path string, log *LogEntry, conn net.Conn, con
// Redirect to add trailing slash if missing
// (otherwise relative links don't work properly)
if !strings.HasSuffix(URL.Path, "/") {
conn.Write([]byte(fmt.Sprintf("31 %s\r\n", URL.String()+"/")))
URL.Path += "/"
conn.Write([]byte(fmt.Sprintf("31 %s\r\n", URL.String())))
log.Status = 31
return
}

Loading…
Cancel
Save