From 77801f29fa8b0c97ec0880544b68497231fbda0b Mon Sep 17 00:00:00 2001 From: wood chen Date: Sun, 29 Sep 2024 01:08:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/router.go | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/handler/router.go b/handler/router.go index adaf368..3dace68 100644 --- a/handler/router.go +++ b/handler/router.go @@ -61,15 +61,26 @@ func Convert(c *fiber.Ctx) error { log.Debugf("Incoming connection from %s %s %s", c.IP(), reqHostname, reqURIwithQuery) - // 新增:检查是否为图片文件 - if !isImageFile(filename) { - log.Infof("Non-image file requested: %s, redirecting to original URL", filename) - if proxyMode { - return c.Redirect(realRemoteAddr, 302) - } else { - return c.Redirect(reqURIwithQuery, 302) - } - } + isRedirect := c.Query("webp_redirect") == "true" + + if !isRedirect { + if !isImageFile(filename) { + log.Infof("Non-image file requested: %s, redirecting to original URL", filename) + redirectURL := "" + if proxyMode { + redirectURL = realRemoteAddr + } else { + redirectURL = reqURIwithQuery + } + // 添加标记到重定向 URL + if strings.Contains(redirectURL, "?") { + redirectURL += "&webp_redirect=true" + } else { + redirectURL += "?webp_redirect=true" + } + return c.Redirect(redirectURL, 302) + } + } if !helper.CheckAllowedType(filename) {