更新 proxy/rewriter.go

This commit is contained in:
XOF
2025-12-15 05:42:34 +08:00
parent d3c8f5643c
commit 31cd013a11

View File

@@ -135,16 +135,22 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
urlStr = r.baseURL.Scheme + ":" + urlStr urlStr = r.baseURL.Scheme + ":" + urlStr
} }
// 绝对路径(以 / 开头但不是 //
if strings.HasPrefix(urlStr, "/") && !strings.HasPrefix(urlStr, "//") {
return "/p/" + r.token + urlStr
}
u, err := url.Parse(urlStr) u, err := url.Parse(urlStr)
if err != nil { if err != nil {
return urlStr return urlStr
} }
// 相对路径
if !u.IsAbs() { if !u.IsAbs() {
u = r.baseURL.ResolveReference(u) u = r.baseURL.ResolveReference(u)
} }
// 同域名,只保留路径 // 同域名
if u.Host == r.baseURL.Host { if u.Host == r.baseURL.Host {
proxyPath := u.Path proxyPath := u.Path
if u.RawQuery != "" { if u.RawQuery != "" {
@@ -156,9 +162,8 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
return "/p/" + r.token + proxyPath return "/p/" + r.token + proxyPath
} }
// 跨域资源,完整 URL // 跨域资源
fullURL := u.String() return "/p/" + r.token + "/" + u.String()
return "/p/" + r.token + "/" + fullURL
} }
func (r *ContentRewriter) rewriteSrcset(srcset string) string { func (r *ContentRewriter) rewriteSrcset(srcset string) string {