Changes with Apache 2.0.50
+ *) mod_alias now emits a warning if it detects overlapping *Alias*
+ directives. [André Malo]
+
*) mod_rewrite no longer turns forward proxy requests into reverse proxy
requests. PR 28125 [ast domdv.de, André Malo]
APACHE 2.0 STATUS: -*-text-*-
-Last modified at [$Date: 2004/06/14 17:48:10 $]
+Last modified at [$Date: 2004/06/14 22:09:41 $]
Release:
modules/filters/mod_include.c: r1.296
+1: nd
- *) mod_alias: Emit a warning if an alias overlaps another
- modules/mappers/mod_alias.c: r1.45, 1.46, 1.47, 1.48, 1.55
- +1: nd, bnicholes, jjclar
-
*) Fixed mean and median calculations in ab, also changed where time values
are set for start and connect when doing keep alive benchmarking.
support/ab.c: r1.143
return a;
}
+/* need prototype for overlap check */
+static int alias_matches(const char *uri, const char *alias_fakename);
+
static const char *add_alias_internal(cmd_parms *cmd, void *dummy,
const char *f, const char *r,
int use_regex)
alias_server_conf *conf = ap_get_module_config(s->module_config,
&alias_module);
alias_entry *new = apr_array_push(conf->aliases);
+ alias_entry *entries = (alias_entry *)conf->aliases->elts;
+ int i;
/* XX r can NOT be relative to DocumentRoot here... compat bug. */
new->fake = f;
new->handler = cmd->info;
+ /* check for overlapping (Script)Alias directives
+ * and throw a warning if found one
+ */
+ if (!use_regex) {
+ for (i = 0; i < conf->aliases->nelts - 1; ++i) {
+ alias_entry *p = &entries[i];
+
+ if ( (!p->regexp && alias_matches(f, p->fake) > 0)
+ || (p->regexp && !ap_regexec(p->regexp, f, 0, NULL, 0))) {
+ ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server,
+ "The %s directive in %s at line %d will probably "
+ "never match because it overlaps an earlier "
+ "%sAlias%s.",
+ cmd->cmd->name, cmd->directive->filename,
+ cmd->directive->line_num,
+ p->handler ? "Script" : "",
+ p->regexp ? "Match" : "");
+
+ break; /* one warning per alias should be sufficient */
+ }
+ }
+ }
+
return NULL;
}