diff --git a/caddyhttp/rewrite/setup.go b/caddyhttp/rewrite/setup.go index 4e9bfe70d..71c498e1d 100644 --- a/caddyhttp/rewrite/setup.go +++ b/caddyhttp/rewrite/setup.go @@ -76,10 +76,6 @@ func rewriteParse(c *caddy.Controller) ([]httpserver.HandlerConfig, error) { return nil, c.ArgErr() } to = strings.Join(args1, " ") - // ensure rewrite path begins with / - if !strings.HasPrefix(to, "/") { - return nil, c.Errf("%s:%d - Syntax error: Rewrite path must begin with '/'. Provided: '%s'", c.File(), c.Line(), c.Val()) - } case "ext": args1 := c.RemainingArgs() if len(args1) == 0 { @@ -94,20 +90,14 @@ func rewriteParse(c *caddy.Controller) ([]httpserver.HandlerConfig, error) { if to == "" { return nil, c.ArgErr() } - if rule, err = NewComplexRule(base, pattern, to, ext, matcher); err != nil { return nil, err } rules = append(rules, rule) - // handle case of 2 arguments: "from to" + // the only unhandled case is 2 and above default: - // ensure rewrite path begins with / - topath := strings.Join(args[1:], " ") - if !strings.HasPrefix(topath, "/") { - return nil, c.Errf("%s:%d - Syntax error: Rewrite path must begin with '/'. Provided: '%s'", c.File(), c.Line(), c.Val()) - } - rule = NewSimpleRule(args[0], topath) + rule = NewSimpleRule(args[0], strings.Join(args[1:], " ")) rules = append(rules, rule) } diff --git a/caddyhttp/rewrite/setup_test.go b/caddyhttp/rewrite/setup_test.go index b5d9455a1..fd355102c 100644 --- a/caddyhttp/rewrite/setup_test.go +++ b/caddyhttp/rewrite/setup_test.go @@ -45,19 +45,15 @@ func TestRewriteParse(t *testing.T) { SimpleRule{From: "/from", To: "/to"}, }}, {`rewrite /from /to - rewrite a /b`, false, []Rule{ + rewrite a b`, false, []Rule{ SimpleRule{From: "/from", To: "/to"}, - SimpleRule{From: "a", To: "/b"}, + SimpleRule{From: "a", To: "b"}, }}, - {`rewrite a b`, true, []Rule{}}, {`rewrite a`, true, []Rule{}}, {`rewrite`, true, []Rule{}}, - {`rewrite a b c`, true, []Rule{ + {`rewrite a b c`, false, []Rule{ SimpleRule{From: "a", To: "b c"}, }}, - {`rewrite a /b c`, false, []Rule{ - SimpleRule{From: "a", To: "/b c"}, - }}, } for i, test := range simpleTests {