更新 proxy/rewriter.go

This commit is contained in:
XOF
2025-12-15 05:04:01 +08:00
parent aaff2c6020
commit 62cfdd5212

View File

@@ -125,6 +125,11 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
return urlStr return urlStr
} }
// 处理协议相对 URL//domain.com/path
if strings.HasPrefix(urlStr, "//") {
urlStr = r.baseURL.Scheme + ":" + urlStr
}
u, err := url.Parse(urlStr) u, err := url.Parse(urlStr)
if err != nil { if err != nil {
return urlStr return urlStr
@@ -134,7 +139,7 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
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 != "" {
@@ -146,10 +151,11 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
return "/p/" + r.token + proxyPath return "/p/" + r.token + proxyPath
} }
// 跨域资源,需要完整 URL // 跨域资源,完整 URL
return "/p/" + r.token + "/" + u.String() return "/p/" + r.token + "/" + u.String()
} }
func (r *ContentRewriter) rewriteSrcset(srcset string) string { func (r *ContentRewriter) rewriteSrcset(srcset string) string {
if srcset == "" { if srcset == "" {
return srcset return srcset