http.HandleFunc定义的URL路径如何做到大小写不敏感

ying1234 2019-08-16 04:47:10
http.HandleFunc("/show", showRepeatPost)
fmt.Println("服务器已启动,请输入http://localhost:8900/show")
err := http.ListenAndServe(":8900", nil)


启动后http://localhost:8900/show可以访问,但是http://localhost:8900/Show就不能访问了,如何做到http.HandleFunc("/show", showRepeatPost)定义的"/show"大小写不敏感?无论是show,Show,SHOW....都可以访问。
...全文
217 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ying1234 2019-08-23
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
能不能自己加一层路由方法,比如
http.HandleFunc("/", dispatch)
func dispatch(w http.ResponseWriter, r *http.Request) {
reg := regex.MustCompile("[/][sS][hH][oO][wW]")
switch {
case reg.MatchString(r.URL.Path):
showRepeatPost(w, r)
default:
w.Write([]byte("Unknown Pattern"))
}
}


对啊,先用http.HandleFunc("/", dispatch)定义所有路由适用,然后在dispatch方法再定义相对应的路由。我怎么就没想到这招,关键是http.HandleFunc("/", dispatch)这句话,非常感谢。
qybao 2019-08-19
  • 打赏
  • 举报
回复
能不能自己加一层路由方法,比如
http.HandleFunc("/", dispatch)
func dispatch(w http.ResponseWriter, r *http.Request) {
reg := regex.MustCompile("[/][sS][hH][oO][wW]")
switch {
case reg.MatchString(r.URL.Path):
showRepeatPost(w, r)
default:
w.Write([]byte("Unknown Pattern"))
}
}

2,186

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧