【发布时间】:2019-09-04 00:38:41
【问题描述】:
我有以下路由器:
func testHttp() {
r := mux.NewRouter()
s := r.PathPrefix("/cmd").Subrouter()
s.HandleFunc("/{cmd}", cmd)
http.Handle("/", r)
http.ListenAndServe(":8090", nil)
}
当我发出localhost:8090/cmd/ls -la 之类的请求时,cmd 处理程序会正确执行。但是,如果我传入 localhost:8090/cmd/ls -la /home/foo 之类的内容,我会得到 404。这意味着如果检测到 /,gorilla/mux 会保持匹配。那么如何配置它以使特定匹配路径(在本例中为 /cmd/)之后的所有内容都被视为路径的参数?大概我可以求助于使用 GET 参数,但是如果也使用 /rest-endpoint/params-containing/ 可以实现吗?
【问题讨论】: