From: André Malo Date: Wed, 20 Aug 2003 00:35:48 +0000 (+0000) Subject: allow [T=...] forced types to get expanded. X-Git-Tag: pre_ajp_proxy~1256 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=642b71616033e8bb61c3aba0d9df01d8ceaf80fa;p=apache allow [T=...] forced types to get expanded. PR: 14223 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101028 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index d25fcf336f..239ed80502 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) mod_rewrite: Allow forced mimetypes [T=...] to get expanded. + PR 14223. [André Malo] + *) mod_log_config: Fix %b log format to write really "-" when 0 bytes were sent (e.g. with 304 or 204 response codes). [Astrid Keßler] diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c index db168c367a..7586bda855 100644 --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -3221,7 +3221,6 @@ static const char *cmd_rewriterule_setflag(apr_pool_t *p, void *_cfg, case 'T': if (!*key || !strcasecmp(key, "ype")) { /* type */ cfg->forced_mimetype = val; - ap_str_tolower(cfg->forced_mimetype); } break; @@ -3585,11 +3584,16 @@ static int apply_rewrite_rule(rewriterule_entry *p, rewrite_ctx *ctx) /* non-substitution rules ('RewriteRule -') end here. */ if (p->flags & RULEFLAG_NOSUB) { if (p->forced_mimetype) { - rewritelog((r, 2, ctx->perdir, "remember %s to have MIME-type '%s'", - r->filename, p->forced_mimetype)); + char *type = do_expand(p->forced_mimetype, ctx); + + if (*type) { + ap_str_tolower(type); - apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR, - p->forced_mimetype); + rewritelog((r, 2, ctx->perdir, "remember %s to have MIME-type " + "'%s'", r->filename, type)); + + apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR, type); + } } return 2; @@ -3666,11 +3670,16 @@ static int apply_rewrite_rule(rewriterule_entry *p, rewrite_ctx *ctx) /* Finally remember the forced mime-type */ if (p->forced_mimetype) { - rewritelog((r, 2, ctx->perdir, "remember %s to have MIME-type '%s'", - r->filename, p->forced_mimetype)); + char *type = do_expand(p->forced_mimetype, ctx); - apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR, - p->forced_mimetype); + if (*type) { + ap_str_tolower(type); + + rewritelog((r, 2, ctx->perdir, "remember %s to have MIME-type '%s'", + r->filename, type)); + + apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR, type); + } } /* Puuhhhhhhhh... WHAT COMPLICATED STUFF ;_)