当使用嵌套http.ServeMux来定义我的服务器的端点时,我遇到了这个问题:处理程序总是会以“301 永久移动”响应任何请求,即使 URL 路径应该匹配。
例子:
package main
import "net/http"
func main() {
api := http.NewServeMux()
api.HandleFunc("ping", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("pong\n"))
})
root := http.NewServeMux()
root.Handle("/api/", http.StripPrefix("/api/", api))
http.ListenAndServe(":8080", root)
}
尝试访问/api/ping时,服务器重定向到/ping(当然返回 404)。同样的事情发生在任何路由下/api/-/api/foo重定向到/foo.
我正在使用 Go 1.13 和 curl 7.58。
拉丁的传说
慕桂英4014372
ITMISS
相关分类