Browse Source

httpcaddyfile: Allow php_fastcgi to be used in route directive

Fixes
https://caddy.community/t/v2-help-to-set-up-a-yourls-instance/7260/22
master
Matthew Holt 5 years ago
parent
commit
348cb798e2
No known key found for this signature in database GPG Key ID: 2A349DD577D586A5
  1. 15
      caddyconfig/httpcaddyfile/builtins.go

15
caddyconfig/httpcaddyfile/builtins.go

@ -408,11 +408,18 @@ func parseRoute(h Helper) (caddyhttp.MiddlewareHandler, error) {
return nil, h.Errf("parsing caddyfile tokens for '%s': %v", dir, err)
}
for _, result := range results {
handler, ok := result.Value.(caddyhttp.Route)
if !ok {
return nil, h.Errf("%s directive returned something other than an HTTP route: %#v (only handler directives can be used in routes)", dir, result.Value)
switch handler := result.Value.(type) {
case caddyhttp.Route:
sr.Routes = append(sr.Routes, handler)
case caddyhttp.Subroute:
// directives which return a literal subroute instead of a route
// means they intend to keep those handlers together without
// them being reordered; we're doing that anyway since we're in
// the route directive, so just append its handlers
sr.Routes = append(sr.Routes, handler.Routes...)
default:
return nil, h.Errf("%s directive returned something other than an HTTP route or subroute: %#v (only handler directives can be used in routes)", dir, result.Value)
}
sr.Routes = append(sr.Routes, handler)
}
}
}

Loading…
Cancel
Save