Checkout Tools
  • last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1809028 is being indexed.

mod_rewrite,core: avoid Vary:Host (part 2)

This is a follow up of r1808746 after a chat

with Yann on dev@:

- the HTTP:Host variable suffers from the same problem

- the strcasecmp should be used to allow case-sensitive


- in mod_rewrite is less cumbersome and more clean to just

make the Host header check in lookup_header, so it will

be automatically picked up by every part of the code

that uses it. It shouldn't be a relevant overhead for


  1. … 2 more files in changeset.
mod_speling/PR 38923: don't embed Referer in link in error page.

  1. … 1 more file in changeset.
mod_rewrite/core: avoid the 'Vary: Host' header

In PR 58231 is was brought up that httpd adds the

Vary: Host header whenever a condition is set to true

in mod_rewrite or in an <If> block.


section seems to disallow this use case:

"The "Vary" header field in a response describes "

"what parts of a request message, "

"aside from the method, Host header field, [...]"

I had a chat with the folks in #traffic-server and

they don't see much point in having a Vary: Host header,

plus it was reported that Varnish doesn't like it very

much (namely it does not cache the response when

it sees the header, links of the report in the PR).

I don't see much value in this behavior of httpd so

I am inclined to remove this response header value,

but I'd be glad to get a more experienced opinion.

  1. … 2 more files in changeset.
Fix negotiation type parsing to be strict about "*", "*/*" and "type/*"


Submitted by: wrowe, Robert Święcki <robert>

Partial reversal of r1800306... note virtual scripts in notes

proxy_fcgi: remove FPM-specific logic

Reverts r1780328, r1780329, and their associated followups, which

incorrectly manipulated SCRIPT_NAME by default. All proxy_fcgi.t

regression tests now pass.

PR: 61202

  1. … 2 more files in changeset.
fix for RewriteOptions processing in r1798938

add RewriteOptions LongURLOptimization

Variable expansion in RewriteCond causes strings to be duplicated

out of r->pool. If the variables are long and many conditions

are evaluated, r->pool can get seriously bloated.

Clear the memory used for variable expansion for each set of conditons

once the set of conditions fails to match.

edit: revised in 1799261

  1. … 2 more files in changeset.
Save a few bytes in the request pool.
Adjust as needed
  1. … 1 more file in changeset.
PR60009: RewriteRule local prefix checking update

*) mod_rewrite: When a substitution is a fully qualified URL, and the

scheme/host/port matches the current virtual host, stop interpreting the

path component as a local path just because the first component of the

path exists in the filesystem. Adds RewriteOption "LegacyPrefixDocRoot"

to revert to previous behavior. PR60009.

Submitted By: Hank Ibell <hwibell>

  1. … 2 more files in changeset.
short-circuit some kinds of looping in RewriteRule.


Submitted By: Jeff Wheelouse <apache>

Committed By: covener

  1. … 1 more file in changeset.
Fix spelling in comments and text files.

No functional change.

PR 59990

  1. … 67 more files in changeset.
Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n](), update with APR doxygen
  1. … 47 more files in changeset.
Constify and save a few bytes in the conf pool when parsing "UserDir" directive
mod_rewrite: adding h2:// and h2c:// proxy schemes to absolute uri detection, patch by Evgeny Kotkov
[PATCH] mod_rewrite: double escaping of query strings in server context

(like PR50447, for server context)

Submitted By: Evgeny Kotkov <evgeny.kotkov>

Committed By: covener

  1. … 1 more file in changeset.
followup to r1734125: null check for r->args

before cleaning up some QSA cases.

mod_rewrite: Add QSL|qslast flag to allow rewrites to files with

literal question marks in their names.

PR 58777.

  1. … 3 more files in changeset.
revert broken r1724656 which moved the rewrite loop checks

until after bases had been stripped and added in prep

for internal redirect.

original issue & regression disussed in PR58854

mod_speling: make behavior of CheckCaseOnly and

the new CheckBasenameMatch orthogonal, so one

can combine them and they don't influence each


  1. … 1 more file in changeset.
Sync mod_rewrite REMOTE_HOST to newbehavior (REMOTE_ADDR is useragent_ip)
hostname: Test and log useragent_host per-request across various modules,

including the scoreboard, expression and rewrite engines, setenvif,

authz_host, access_compat, custom logging, ssl and REMOTE_HOST variables.

PR55348 [William Rowe]

This is the complete change set which applies cleanly to 2.4.x as well,

the server/scoreboard.c will follow, which does not apply due to drift.

  1. … 9 more files in changeset.
Added many log numbers to log statements that

had none.

Those were not detected by the coccinelle script.

  1. … 33 more files in changeset.
*) mod_rewrite: Avoid looping on relative substitutions that

result in the same filename we started with. PR 58854.

[Eric Covener]

Previously, the comparison of old and new filename happened before

some prefixes might be added.

  1. … 1 more file in changeset.
Follow up to r1715880: revert more abusive ap_casecmpstr[n]() usages.
  1. … 7 more files in changeset.
Use 'ap_array_str_contains' to simplify code.
Follow up to r1715880: revert abusive ap_casecmpstr[n]() usages.

  1. … 7 more files in changeset.
More ap_casecmpstr[n]() usages (follow up to r1715876).

  1. … 24 more files in changeset.
Use new ap_casecmpstr[n]() functions where appropriate (not exhaustive).

  1. … 32 more files in changeset.