char *key, char *val)
{
rewriterule_entry *cfg = _cfg;
- int status = 0;
+ int error = 0;
switch (*key++) {
case 'c':
cp->next = NULL;
cp->data = val;
}
+ else {
+ ++error;
+ }
break;
case 'e':
cp->next = NULL;
cp->data = val;
}
+ else {
+ ++error;
+ }
break;
case 'f':
cfg->flags |= (RULEFLAG_STATUS | RULEFLAG_NOSUB);
cfg->forced_responsecode = HTTP_FORBIDDEN;
}
+ else {
+ ++error;
+ }
break;
case 'g':
cfg->flags |= (RULEFLAG_STATUS | RULEFLAG_NOSUB);
cfg->forced_responsecode = HTTP_GONE;
}
+ else {
+ ++error;
+ }
break;
case 'h':
if (!*key || !strcasecmp(key, "andler")) { /* handler */
cfg->forced_handler = val;
}
+ else {
+ ++error;
+ }
break;
case 'l':
if (!*key || !strcasecmp(key, "ast")) { /* last */
cfg->flags |= RULEFLAG_LASTRULE;
}
+ else {
+ ++error;
+ }
break;
case 'n':
|| !strcasecmp(key, "ocase")) { /* nocase */
cfg->flags |= RULEFLAG_NOCASE;
}
+ else {
+ ++error;
+ }
break;
case 'p':
|| !strcasecmp(key, "assthrough")) { /* passthrough */
cfg->flags |= RULEFLAG_PASSTHROUGH;
}
+ else {
+ ++error;
+ }
break;
case 'q':
|| !strcasecmp(key, "qsappend")) { /* qsappend */
cfg->flags |= RULEFLAG_QSAPPEND;
}
+ else {
+ ++error;
+ }
break;
case 'r':
case 'R':
if (!*key || !strcasecmp(key, "edirect")) { /* redirect */
+ int status = 0;
+
cfg->flags |= RULEFLAG_FORCEREDIRECT;
if (strlen(val) > 0) {
if (strcasecmp(val, "permanent") == 0) {
cfg->forced_responsecode = status;
}
}
+ else {
+ ++error;
+ }
break;
case 's':
if (!*key || !strcasecmp(key, "kip")) { /* skip */
cfg->skip = atoi(val);
}
+ else {
+ ++error;
+ }
break;
case 't':
if (!*key || !strcasecmp(key, "ype")) { /* type */
cfg->forced_mimetype = val;
}
+ else {
+ ++error;
+ }
break;
default:
- return apr_pstrcat(p, "RewriteRule: unknown flag '", key, "'", NULL);
+ ++error;
+ break;
+ }
+
+ if (error) {
+ return apr_pstrcat(p, "RewriteRule: unknown flag '", --key, "'", NULL);
}
return NULL;