From 0af28470aa7637bad7d88e899a7489cf6f60a7a5 Mon Sep 17 00:00:00 2001 From: john Date: Fri, 24 Aug 2018 18:33:28 +0800 Subject: [PATCH] =?UTF-8?q?*any/:name=E8=B7=AF=E7=94=B1=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=94=B9=E8=BF=9B=E6=94=AF=E6=8C=81=E4=B8=8D?= =?UTF-8?q?=E5=B8=A6=E5=90=8D=E5=AD=97=E7=9A=84*/:=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO | 2 +- g/net/ghttp/ghttp_server_router.go | 6 ++++++ geg/net/ghttp/server/router/router6.go | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 geg/net/ghttp/server/router/router6.go diff --git a/TODO b/TODO index a5d3d1e1a..3090b1a52 100644 --- a/TODO +++ b/TODO @@ -20,7 +20,6 @@ ghttp.Server增加Ip访问控制功能(DenyIps&AllowIps); ghttp路由功能增加分组路由特性; 解决glog串日志情况; ghttp增加返回数据压缩机制; -*any模糊匹配路由改进支持不带名字的*路由规则; 检查windows下的平滑重启失效问题; gview中的template标签失效问题; ghttp静态文件服务改进(特别是403返回状态的修改); @@ -60,3 +59,4 @@ DONE: 30. gpage分页增加对自定义后缀的支持,如:2.html, 2.php等等; 31. gvalid包增加struct tag的校验规则、自定义错误提示信息绑定的支持特性; 32. 增加文件缓存包,可根据fsnotify机制进行缓存更新; +33. *any/:name路由匹配路由改进支持不带名字的*/:路由规则; diff --git a/g/net/ghttp/ghttp_server_router.go b/g/net/ghttp/ghttp_server_router.go index 727ce09f7..4f8beeaf9 100644 --- a/g/net/ghttp/ghttp_server_router.go +++ b/g/net/ghttp/ghttp_server_router.go @@ -275,6 +275,9 @@ func (s *Server) patternToRegRule(rule string) (regrule string, names []string) regrule += `/([\w\.\-]+)` names = append(names, v[1:]) break + } else { + regrule += `/[\w\.\-]+` + break } fallthrough case '*': @@ -282,6 +285,9 @@ func (s *Server) patternToRegRule(rule string) (regrule string, names []string) regrule += `/{0,1}(.*)` names = append(names, v[1:]) break + } else { + regrule += `/{0,1}.*` + break } fallthrough default: diff --git a/geg/net/ghttp/server/router/router6.go b/geg/net/ghttp/server/router/router6.go new file mode 100644 index 000000000..b11e6b04b --- /dev/null +++ b/geg/net/ghttp/server/router/router6.go @@ -0,0 +1,16 @@ +package main + +import ( + "gitee.com/johng/gf/g" + "gitee.com/johng/gf/g/net/ghttp" +) + +// 试试模糊匹配规则不带名称会怎么样 +func main() { + s := g.Server() + s.BindHandler("/hello/*", func(r *ghttp.Request){ + r.Response.Writeln("哈喽世界!") + }) + s.SetPort(8199) + s.Run() +} \ No newline at end of file