From 7a3d05ebf3fd36ea7e534de64ad38c23367ac97f Mon Sep 17 00:00:00 2001 From: astaxie Date: Sat, 28 Dec 2013 23:04:45 +0800 Subject: [PATCH] when pattern is /admin while the url is /admin/ should return 200. fix #416 --- router.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/router.go b/router.go index 72211c29..dde69679 100644 --- a/router.go +++ b/router.go @@ -573,13 +573,21 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) break } } - // pattern /admin url /admin 200 /admin/ 404 + // pattern /admin url /admin 200 /admin/ 200 // pattern /admin/ url /admin 301 /admin/ 200 if requestPath[n-1] != '/' && len(route.pattern) == n+1 && route.pattern[n] == '/' && route.pattern[:n] == requestPath { http.Redirect(w, r, requestPath+"/", 301) goto Admin } + if n >= 1 && requestPath[:n-1] == route.pattern { + runMethod = p.getRunMethod(r.Method, context, route) + if runMethod != "" { + runrouter = route.controllerType + findrouter = true + break + } + } } //find regex's router