更新 proxy/rewriter.go
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user