1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package dpcore
- import (
- "net/url"
- "strings"
- )
- func replaceLocationHost(urlString string, rrr *ResponseRewriteRuleSet, useTLS bool) (string, error) {
- u, err := url.Parse(urlString)
- if err != nil {
- return "", err
- }
-
-
- if useTLS {
- u.Scheme = "https"
- } else {
- u.Scheme = "http"
- }
-
-
-
-
-
-
- if rrr.ProxyDomain != u.Host && !strings.Contains(u.Host, rrr.OriginalHost+":") {
-
-
- return urlString, nil
- }
- u.Host = rrr.OriginalHost
- if strings.Contains(rrr.ProxyDomain, "/") {
-
-
-
-
-
-
- ProxyDomainURL := "http://" + rrr.ProxyDomain
- if rrr.UseTLS {
- ProxyDomainURL = "https://" + rrr.ProxyDomain
- }
- ru, err := url.Parse(ProxyDomainURL)
- if err == nil {
-
- u.Path = strings.TrimPrefix(u.Path, ru.Path)
- }
- }
- return u.String(), nil
- }
- func ReplaceLocationHost(urlString string, rrr *ResponseRewriteRuleSet, useTLS bool) (string, error) {
- return replaceLocationHost(urlString, rrr, useTLS)
- }
|