diff --git a/dist/CHANGES.txt b/dist/CHANGES.txt index b76e2ee39..08211dcb3 100644 --- a/dist/CHANGES.txt +++ b/dist/CHANGES.txt @@ -6,6 +6,7 @@ CHANGES - browse: Sort by clicking column heading or using query string - core: Serving hostname that doesn't resolve issues warning then listens on 0.0.0.0 - errors: Missing error page during parse time is warning, not error +- ext: Extension only appended if request path does not end in / - fastcgi: Fix for backend responding without status text - fastcgi: Fix PATH_TRANSLATED when PATH_INFO is empty (RFC 3875) - gzip: Enable by file path and/or extension diff --git a/middleware/extensions/ext.go b/middleware/extensions/ext.go index c2852cbbe..2444319fd 100644 --- a/middleware/extensions/ext.go +++ b/middleware/extensions/ext.go @@ -31,7 +31,7 @@ type Ext struct { // ServeHTTP implements the middleware.Handler interface. func (e Ext) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) { urlpath := strings.TrimSuffix(r.URL.Path, "/") - if path.Ext(urlpath) == "" { + if path.Ext(urlpath) == "" && r.URL.Path[len(r.URL.Path)-1] != '/' { for _, ext := range e.Extensions { if resourceExists(e.Root, urlpath+ext) { r.URL.Path = urlpath + ext