更新 proxy/rewriter.go

This commit is contained in:
XOF
2025-12-15 18:04:17 +08:00
parent 43506ab6e1
commit 3bc1d0a637

View File

@@ -161,16 +161,22 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
if !u.IsAbs() {
resolved := r.baseURL.ResolveReference(u)
proxyPath := resolved.Path
if resolved.RawQuery != "" {
proxyPath += "?" + resolved.RawQuery
// 同域相对路径,只保留路径部分
if resolved.Host == r.baseURL.Host {
proxyPath := resolved.Path
if resolved.RawQuery != "" {
proxyPath += "?" + resolved.RawQuery
}
if resolved.Fragment != "" {
proxyPath += "#" + resolved.Fragment
}
return "/p/" + r.token + proxyPath
}
if resolved.Fragment != "" {
proxyPath += "#" + resolved.Fragment
}
return "/p/" + r.token + proxyPath
// 跨域相对路径(罕见),保留完整 URL
return "/p/" + r.token + "/" + resolved.String()
}
// 同域绝对 URL只保留路径
if u.Host == r.baseURL.Host {
proxyPath := u.Path
if u.RawQuery != "" {
@@ -182,6 +188,7 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
return "/p/" + r.token + proxyPath
}
// 跨域绝对 URL保留完整 URL
return "/p/" + r.token + "/" + u.String()
}