diff --git a/router.go b/router.go index dd2567c0..72211c29 100644 --- a/router.go +++ b/router.go @@ -566,10 +566,12 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) for _, route := range p.fixrouters { n := len(requestPath) if requestPath == route.pattern { - runrouter = route.controllerType - findrouter = true runMethod = p.getRunMethod(r.Method, context, route) - break + if runMethod != "" { + runrouter = route.controllerType + findrouter = true + break + } } // pattern /admin url /admin 200 /admin/ 404 // pattern /admin/ url /admin 301 /admin/ 200 @@ -608,11 +610,13 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) //reassemble query params and add to RawQuery r.URL.RawQuery = url.Values(values).Encode() } - runrouter = route.controllerType - findrouter = true - context.Input.Params = params runMethod = p.getRunMethod(r.Method, context, route) - break + if runMethod != "" { + runrouter = route.controllerType + context.Input.Params = params + findrouter = true + break + } } } @@ -798,7 +802,7 @@ func (p *ControllerRegistor) getRunMethod(method string, context *beecontext.Con } else if m, ok = router.methods["*"]; ok { return m } else { - return strings.Title(method) + return "" } } else { return strings.Title(method)