Golang Gorilla发送301的“ //” URL

时间:2019-05-07 10:26:46

标签: go gorilla

我有两条配置如下的路由

  • GET /api/store/{store_id}/books
  • GET /api/store/{store_id}

当对第一个没有{store_id}参数的URL进行API调用时,例如/api/store//books,Gorilla会以某种方式向客户端发送301 /api/store/books。这引起了我的问题,因为它严格匹配了第二条路线。大猩猩会将books当作{store_id}参数。

如何在接收到URL中的//时配置Gorilla以返回404或其他错误代码?

我正在使用Gorilla v1.7.0。

1 个答案:

答案 0 :(得分:2)

默认情况下,多路复用器将清除URL。您可以设置router.SkipClean(true)参数来避免这种情况。

  

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