mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-22 23:02:34 -04:00
[MINOR] http: fix double slash prefix with server redirect
When using server redirection, it is possible to specify a path consisting of only one slash. While this is discouraged (risk of loop) it may sometimes be useful combined with content switching. The prefixing of a '/' then causes two slashes to be returned in the response. So we now do as with the other redirects, don't prepend a slash if it's alone.
This commit is contained in:
parent
962c3f4aab
commit
dcb75c4a83
1 changed files with 5 additions and 2 deletions
|
|
@ -681,8 +681,11 @@ void perform_http_redirect(struct session *s, struct stream_interface *si)
|
|||
if (rdr.len + s->srv->rdr_len > rdr.size)
|
||||
return;
|
||||
|
||||
memcpy(rdr.str + rdr.len, s->srv->rdr_pfx, s->srv->rdr_len);
|
||||
rdr.len += s->srv->rdr_len;
|
||||
/* special prefix "/" means don't change URL */
|
||||
if (s->srv->rdr_len != 1 || *s->srv->rdr_pfx != '/') {
|
||||
memcpy(rdr.str + rdr.len, s->srv->rdr_pfx, s->srv->rdr_len);
|
||||
rdr.len += s->srv->rdr_len;
|
||||
}
|
||||
|
||||
/* 3: add the request URI */
|
||||
txn = &s->txn;
|
||||
|
|
|
|||
Loading…
Reference in a new issue