http: Handler now uses redirects to ensure dirs end on a /
This commit is contained in:
parent
7c9e1a429e
commit
62885b2e37
@ -34,6 +34,7 @@ func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
|
||||
pat = "/" + pat
|
||||
req.URL.Path = pat
|
||||
}
|
||||
hasTrailingSlash := strings.HasSuffix(pat, "/")
|
||||
pat = path.Clean(req.URL.Path)
|
||||
|
||||
info, err := statFile(filesystem, pathToName(pat))
|
||||
@ -44,6 +45,12 @@ func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
|
||||
return
|
||||
}
|
||||
if info.IsDir() {
|
||||
// ensure the path ends with a /
|
||||
if !hasTrailingSlash {
|
||||
http.Redirect(res, req, pat + "/", http.StatusMovedPermanently)
|
||||
return
|
||||
}
|
||||
|
||||
// try to find an index
|
||||
for _, base := range this.Index {
|
||||
currentPath := path.Join(pat, base)
|
||||
|
Loading…
Reference in New Issue
Block a user