mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-26 02:09:47 +08:00
Fix cleaned URL path in proxy
This commit is contained in:
parent
a0e6eb3ba9
commit
9acfec5418
|
@ -165,6 +165,11 @@ func createUpstreamRequest(r *http.Request) *http.Request {
|
|||
outreq := new(http.Request)
|
||||
*outreq = *r // includes shallow copies of maps, but okay
|
||||
|
||||
// Restore URL Path if it has been modified
|
||||
if outreq.URL.RawPath != "" {
|
||||
outreq.URL.Opaque = outreq.URL.RawPath
|
||||
}
|
||||
|
||||
// Remove hop-by-hop headers to the backend. Especially
|
||||
// important is "Connection" because we want a persistent
|
||||
// connection, regardless of what the client sent to us. This
|
||||
|
|
|
@ -309,6 +309,8 @@ func TestUnixSocketProxyPaths(t *testing.T) {
|
|||
{"/proxy/hello", "/proxy", fmt.Sprintf(greeting, "/hello")},
|
||||
{"/proxy/foo/bar", "/proxy", fmt.Sprintf(greeting, "/foo/bar")},
|
||||
{"/proxy/?foo=bar", "/proxy", fmt.Sprintf(greeting, "/?foo=bar")},
|
||||
{"/queues/%2F/fetchtasks", "", fmt.Sprintf(greeting, "/queues/%2F/fetchtasks")},
|
||||
{"/queues/%2F/fetchtasks?foo=bar", "", fmt.Sprintf(greeting, "/queues/%2F/fetchtasks?foo=bar")},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
|
Loading…
Reference in New Issue
Block a user