diff --git a/util/url.go b/util/url.go index 88874c5..e6c7d39 100644 --- a/util/url.go +++ b/util/url.go @@ -55,12 +55,22 @@ func normalizeURL(rawURL string) string { // 将 http 和 https 视为同一种协议 u.Scheme = "https" - // 移除尾部的 /index.html 或 .html - u.Path = strings.TrimSuffix(u.Path, "/index.html") - u.Path = strings.TrimSuffix(u.Path, ".html") + // 使用循环持续移除后缀,直到Path不再变化 + for { + oldPath := u.Path - // 移除末尾的 / - u.Path = strings.TrimRight(u.Path, "/") + // 移除尾部的 /index.html 或 .html + u.Path = strings.TrimSuffix(u.Path, "/index.html") + u.Path = strings.TrimSuffix(u.Path, ".html") + + // 移除末尾的 / + u.Path = strings.TrimRight(u.Path, "/") + + // 如果路径不再变化,则退出循环 + if oldPath == u.Path { + break + } + } return u.String() }