|
|
|
@ -244,13 +244,13 @@ static gboolean redirect_internal(liVRequest *vr, GString *dest, redirect_rule *
|
|
|
|
|
break;
|
|
|
|
|
case REDIRECT_ABSOLUTE_PATH:
|
|
|
|
|
/* /foo/bar?baz */
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.scheme));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN(vr->con->is_ssl ? "https" : "http"));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN("://"));
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.authority));
|
|
|
|
|
break;
|
|
|
|
|
case REDIRECT_RELATIVE_PATH:
|
|
|
|
|
/* foo/bar?baz */
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.scheme));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN(vr->con->is_ssl ? "https" : "http"));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN("://"));
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.authority));
|
|
|
|
|
/* search for last slash /foo/bar */
|
|
|
|
@ -263,7 +263,7 @@ static gboolean redirect_internal(liVRequest *vr, GString *dest, redirect_rule *
|
|
|
|
|
break;
|
|
|
|
|
case REDIRECT_RELATIVE_QUERY:
|
|
|
|
|
/* ?bar */
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.scheme));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN(vr->con->is_ssl ? "https" : "http"));
|
|
|
|
|
g_string_append_len(dest, CONST_STR_LEN("://"));
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.authority));
|
|
|
|
|
g_string_append_len(dest, GSTR_LEN(vr->request.uri.path));
|
|
|
|
@ -299,6 +299,7 @@ static gboolean redirect_internal(liVRequest *vr, GString *dest, redirect_rule *
|
|
|
|
|
switch (rp->data.cond_lval) {
|
|
|
|
|
case LI_COMP_REQUEST_LOCALIP: str = vr->con->srv_sock->local_addr_str; break;
|
|
|
|
|
case LI_COMP_REQUEST_REMOTEIP: str = vr->con->remote_addr_str; break;
|
|
|
|
|
case LI_COMP_REQUEST_SCHEME: str = NULL; break;
|
|
|
|
|
case LI_COMP_REQUEST_PATH: str = vr->request.uri.path; break;
|
|
|
|
|
case LI_COMP_REQUEST_HOST: str = vr->request.uri.host; break;
|
|
|
|
|
case LI_COMP_REQUEST_QUERY_STRING: str = vr->request.uri.query; break;
|
|
|
|
|