如何处理以Go中的某个url开头的任何url?

如何处理以Go中的某个url开头的任何url?,go,Go,嗨,我在go中使用gorilla/mux,我想处理任何以“/a/b/c”开头的url 我试过: router := mux.NewRouter().StrictSlash(true) router.HandleFunc(`/a/b/{_dummy:c(\/)?.*}`, Func1) 也就是说,根据gorilla/mux的文档,url可以是/a/b/c/d或/a/b/c/d/e: PathPrefix向URL路径的匹配器注册新路由 前缀请参阅Route.PathPrefix() PathPre

嗨,我在go中使用gorilla/mux,我想处理任何以“/a/b/c”开头的url

我试过:

router := mux.NewRouter().StrictSlash(true)
router.HandleFunc(`/a/b/{_dummy:c(\/)?.*}`, Func1)

也就是说,根据gorilla/mux的文档,url可以是/a/b/c/d或/a/b/c/d/e

PathPrefix向URL路径的匹配器注册新路由 前缀请参阅Route.PathPrefix()

PathPrefix为URL路径前缀添加匹配器。如果 给定模板是完整URL路径的前缀。有关详细信息,请参见Route.Path() 关于tpl论点的详细信息

请注意,它并不专门处理斜杠(“/foobar/”将被删除) 由前缀“/foo”)匹配,因此可能需要使用尾随斜杠 在这里

还要注意,Router.stricslash()的设置对 使用路径前缀匹配器进行路由


请注意,提供给PathPrefix()的路径表示“通配符”: 调用PathPrefix(“/static/”).Handler(…)意味着处理程序 将传递与“/static/*”匹配的任何请求

因此,您需要的是:

router := mux.NewRouter()
router.PathPrefix("/a/b/c/").HandleFunc(proxy.GrafanaHandler) // matches /a/b/c/*

根据gorilla/mux的文档:

PathPrefix向URL路径的匹配器注册新路由 前缀请参阅Route.PathPrefix()

PathPrefix为URL路径前缀添加匹配器。如果 给定模板是完整URL路径的前缀。有关详细信息,请参见Route.Path() 关于tpl论点的详细信息

请注意,它并不专门处理斜杠(“/foobar/”将被删除) 由前缀“/foo”)匹配,因此可能需要使用尾随斜杠 在这里

还要注意,Router.stricslash()的设置对 使用路径前缀匹配器进行路由


请注意,提供给PathPrefix()的路径表示“通配符”: 调用PathPrefix(“/static/”).Handler(…)意味着处理程序 将传递与“/static/*”匹配的任何请求

因此,您需要的是:

router := mux.NewRouter()
router.PathPrefix("/a/b/c/").HandleFunc(proxy.GrafanaHandler) // matches /a/b/c/*
router := mux.NewRouter()
router.PathPrefix("/a/b/c/").HandleFunc(proxy.GrafanaHandler) // matches /a/b/c/*