1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-23 00:00:54 +00:00

Merge pull request #397 from pengfei-xue/devel

fix routing bug
This commit is contained in:
astaxie 2013-12-19 21:06:54 -08:00
commit 235d2740c7

View File

@ -574,10 +574,12 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
n := len(requestPath) n := len(requestPath)
if requestPath == route.pattern { if requestPath == route.pattern {
runrouter = route.controllerType runrouter = route.controllerType
findrouter = true
runMethod = p.getRunMethod(r.Method, context, route) runMethod = p.getRunMethod(r.Method, context, route)
if runMethod != "" {
findrouter = true
break break
} }
}
// pattern /admin url /admin 200 /admin/ 404 // pattern /admin url /admin 200 /admin/ 404
// pattern /admin/ url /admin 301 /admin/ 200 // pattern /admin/ url /admin 301 /admin/ 200
if requestPath[n-1] != '/' && len(route.pattern) == n+1 && if requestPath[n-1] != '/' && len(route.pattern) == n+1 &&
@ -616,12 +618,14 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
r.URL.RawQuery = url.Values(values).Encode() r.URL.RawQuery = url.Values(values).Encode()
} }
runrouter = route.controllerType runrouter = route.controllerType
findrouter = true
context.Input.Params = params context.Input.Params = params
runMethod = p.getRunMethod(r.Method, context, route) runMethod = p.getRunMethod(r.Method, context, route)
if runMethod != "" {
findrouter = true
break break
} }
} }
}
if !findrouter && p.enableAuto { if !findrouter && p.enableAuto {
// deal with url with diffirent ext // deal with url with diffirent ext
@ -801,9 +805,8 @@ func (p *ControllerRegistor) getRunMethod(method string, context *beecontext.Con
return m return m
} else if m, ok = router.methods["*"]; ok { } else if m, ok = router.methods["*"]; ok {
return m return m
} else {
return strings.Title(method)
} }
return ""
} else { } else {
return strings.Title(method) return strings.Title(method)
} }