|
@@ -71,23 +71,15 @@ type requestCanceler interface {
|
|
}
|
|
}
|
|
|
|
|
|
func NewDynamicProxyCore(target *url.URL, prepender string) *ReverseProxy {
|
|
func NewDynamicProxyCore(target *url.URL, prepender string) *ReverseProxy {
|
|
|
|
+ targetQuery := target.RawQuery
|
|
director := func(req *http.Request) {
|
|
director := func(req *http.Request) {
|
|
- targetQuery := target.RawQuery
|
|
|
|
-
|
|
|
|
req.URL.Scheme = target.Scheme
|
|
req.URL.Scheme = target.Scheme
|
|
-
|
|
|
|
req.URL.Host = target.Host
|
|
req.URL.Host = target.Host
|
|
-
|
|
|
|
req.URL.Path, req.URL.RawPath = joinURLPath(target, req.URL)
|
|
req.URL.Path, req.URL.RawPath = joinURLPath(target, req.URL)
|
|
-
|
|
|
|
if targetQuery == "" || req.URL.RawQuery == "" {
|
|
if targetQuery == "" || req.URL.RawQuery == "" {
|
|
-
|
|
|
|
req.URL.RawQuery = targetQuery + req.URL.RawQuery
|
|
req.URL.RawQuery = targetQuery + req.URL.RawQuery
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
-
|
|
|
|
req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
|
|
req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if _, ok := req.Header["User-Agent"]; !ok {
|
|
if _, ok := req.Header["User-Agent"]; !ok {
|
|
@@ -305,6 +297,7 @@ func (p *ReverseProxy) ProxyHTTP(rw http.ResponseWriter, req *http.Request, rrr
|
|
fmt.Println("CHECKPOINT1", req.URL)
|
|
fmt.Println("CHECKPOINT1", req.URL)
|
|
p.Director(outreq)
|
|
p.Director(outreq)
|
|
outreq.Close = false
|
|
outreq.Close = false
|
|
|
|
+ outreq.Host = rrr.OriginalHost
|
|
fmt.Println("CHECKPOINT2", req.URL)
|
|
fmt.Println("CHECKPOINT2", req.URL)
|
|
// We may modify the header (shallow copied above), so we only copy it.
|
|
// We may modify the header (shallow copied above), so we only copy it.
|
|
outreq.Header = make(http.Header)
|
|
outreq.Header = make(http.Header)
|