Skip to content

Commit

Permalink
act more like pre-r1908097 with rewrite
Browse files Browse the repository at this point in the history
- be more conservative with setting QSNONE
- allow the query to be split as historically, but then drop r->args if QSNONE



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1910650 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
covener committed Jun 28, 2023
1 parent 53cc13a commit 52bf943
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions modules/mappers/mod_rewrite.c
Original file line number Diff line number Diff line change
Expand Up @@ -806,12 +806,6 @@ static void splitout_queryargs(request_rec *r, int flags)
int qsdiscard = flags & RULEFLAG_QSDISCARD;
int qslast = flags & RULEFLAG_QSLAST;

if (flags & RULEFLAG_QSNONE) {
rewritelog(r, 2, NULL, "discarding query string, no parse from substitution");
r->args = NULL;
return;
}

/* don't touch, unless it's a scheme for which a query string makes sense.
* See RFC 1738 and RFC 2368.
*/
Expand Down Expand Up @@ -853,6 +847,10 @@ static void splitout_queryargs(request_rec *r, int flags)
r->args[len-1] = '\0';
}
}
if (flags & RULEFLAG_QSNONE) {
rewritelog(r, 2, NULL, "discarding query string, no parse from substitution");
r->args = NULL;
}

rewritelog(r, 3, NULL, "split uri=%s -> uri=%s, args=%s", olduri,
r->filename, r->args ? r->args : "<none>");
Expand Down Expand Up @@ -3909,15 +3907,15 @@ static const char *cmd_rewriterule(cmd_parms *cmd, void *in_dconf,
}

if (*(a2_end-1) == '?') {
*(a2_end-1) = '\0'; /* trailing ? has done its job */
/* a literal ? at the end of the unsubstituted rewrite rule */
if (!(newrule->flags & RULEFLAG_QSAPPEND))
{
if (!(newrule->flags & RULEFLAG_QSAPPEND) &&
!(newrule->flags & RULEFLAG_QSLAST)) {
/* Rule ends with a literal ?, make sure we don't end up with any query */
newrule->flags |= RULEFLAG_QSNONE;
}
}
else if (newrule->flags & RULEFLAG_QSDISCARD) {
if (NULL == ap_strchr(newrule->output, '?')) {
/* QSD and no literal ? in substitution, make sure we don't end up with any query */
newrule->flags |= RULEFLAG_QSNONE;
}
}
Expand Down

0 comments on commit 52bf943

Please sign in to comment.