更新 proxy/rewriter.go
This commit is contained in:
@@ -161,6 +161,8 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
|
|||||||
|
|
||||||
if !u.IsAbs() {
|
if !u.IsAbs() {
|
||||||
resolved := r.baseURL.ResolveReference(u)
|
resolved := r.baseURL.ResolveReference(u)
|
||||||
|
// 同域相对路径,只保留路径部分
|
||||||
|
if resolved.Host == r.baseURL.Host {
|
||||||
proxyPath := resolved.Path
|
proxyPath := resolved.Path
|
||||||
if resolved.RawQuery != "" {
|
if resolved.RawQuery != "" {
|
||||||
proxyPath += "?" + resolved.RawQuery
|
proxyPath += "?" + resolved.RawQuery
|
||||||
@@ -170,7 +172,11 @@ func (r *ContentRewriter) rewriteURL(urlStr string) string {
|
|||||||
}
|
}
|
||||||
return "/p/" + r.token + proxyPath
|
return "/p/" + r.token + proxyPath
|
||||||
}
|
}
|
||||||
|
// 跨域相对路径(罕见),保留完整 URL
|
||||||
|
return "/p/" + r.token + "/" + resolved.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 同域绝对 URL,只保留路径
|
||||||
if u.Host == r.baseURL.Host {
|
if u.Host == r.baseURL.Host {
|
||||||
proxyPath := u.Path
|
proxyPath := u.Path
|
||||||
if u.RawQuery != "" {
|
if u.RawQuery != "" {
|
||||||
@@ -182,6 +188,7 @@ 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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user