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

标签 go slash named-parameters gorilla

这是我的处理程序:

router.HandleFunc("/g/{gparam:.*}", MyHandler)

Bu 当我将类似“123://abc”的内容作为参数传递时,它会重定向并将 url 中的参数修改为“123:/abc”。

他们有办法避免这种情况吗?

最佳答案

这是预期的行为,并且是可配置的。默认情况下,Gorilla mux 将进行路径清理,即为新路由器删除双斜杠等。您可以通过以下方式保留双斜杠:

router.SkipClean(true)

SkipClean文档说:

...
When true, if the route path is "/path//to", it will remain with the double slash. This is helpful if you have a route like: /fetch/http://xkcd.com/534/

关于go - 当我的通配符参数中有双斜杠时,为什么 Gorilla mux 会重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44818867/

相关文章:

任何 go 例程完成后的 Golang 结束函数

c - 如何在具有一位数字的月份上扫描 "0"?

linux - 路径中的斜线是否有替代方案?

php - PHP 是否允许命名参数以便可以在函数调用中省略可选参数?

linux - docker容器在写入挂载目录中的文件时不断增加内存使用量

go - 我们可以参数化 glide.yaml 文件吗?

sql - 在 SQL 中连接两个字符串列时如何忽略尾部斜杠

c++ - 将 Curiously Recurring Template Pattern (CRTP) 与其他类型参数一起使用

python - 确定是否传递了命名参数

postgresql - 为什么 Go 将 Postgresql 数字和小数列视为 []uint8?