当我的通配符参数中有双斜杠时,为什么 Gorilla mux 会重定向?

rav*_*en8 1 slash named-parameters go gorilla

这是我的处理程序:

router.HandleFunc("/g/{gparam:.*}", MyHandler)
Run Code Online (Sandbox Code Playgroud)

但是当我传递类似“123://abc”之类的东西作为参数时,它会重定向并将url中的参数修改为“123:/abc”。

他们是一种避免这种情况的方法吗?

put*_*utu 6

这是预期的行为,并且是可配置的。默认情况下,Gorillamux 会做路径清理,即删除新路由器的双斜线等。您可以按原样保留双斜线:

router.SkipClean(true)
Run Code Online (Sandbox Code Playgroud)

SkipClean文档说:

...
当为 true 时,如果路由路径为“/path//to”,它将保留双斜杠。如果您有以下路线,这将很有帮助:/fetch/http://xkcd.com/534/