]> granicus.if.org Git - apache/commitdiff
allow [T=...] forced types to get expanded.
authorAndré Malo <nd@apache.org>
Wed, 20 Aug 2003 00:35:48 +0000 (00:35 +0000)
committerAndré Malo <nd@apache.org>
Wed, 20 Aug 2003 00:35:48 +0000 (00:35 +0000)
PR: 14223

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101028 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/mappers/mod_rewrite.c

diff --git a/CHANGES b/CHANGES
index d25fcf336f22950a6f3b4b2d7e8cfdebf0b7f0fa..239ed805024f54088b390cb8923e342ee586800e 100644 (file)
--- 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]
 
index db168c367ab364dc5f2a68d154ae0250e349af9a..7586bda8552b4f107d8d67984564d9c078d22c69 100644 (file)
@@ -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 <pat> -') 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 ;_)