From 02dc6a82c636324a716f53a56e183d58948dc727 Mon Sep 17 00:00:00 2001 From: Solderpunk Date: Thu, 30 Jul 2020 18:49:59 +0200 Subject: [PATCH] Add trailing slash to subdirectory links in directory listings. --- dirlist.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dirlist.go b/dirlist.go index 9828f94..eb9a870 100644 --- a/dirlist.go +++ b/dirlist.go @@ -60,7 +60,13 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) (string, if uint64(file.Mode().Perm())&0444 != 0444 { continue } - listing += fmt.Sprintf("=> %s %s\n", url.PathEscape(file.Name()), generatePrettyFileLabel(file, path, config)) + // Make sure links to directories have a trailing slash, + // to avoid needless redirects + relativeUrl := url.PathEscape(file.Name()) + if file.IsDir() { + relativeUrl += "/" + } + listing += fmt.Sprintf("=> %s %s\n", relativeUrl, generatePrettyFileLabel(file, path, config)) } return listing, nil }