Создать HTTP-перенаправление очень просто. Поддерживаются как внутренние, так и внешние расположения.

r.GET("/test", func(c *gin.Context) {
	c.Redirect(http.StatusMovedPermanently, "http://www.google.com/")
})

Выдача HTTP-перенаправления из POST. См. выпуск: #444

r.POST("/test", func(c *gin.Context) {
	c.Redirect(http.StatusFound, "/foo")
})

Выдавая перенаправление Router, используйте HandleContext, как показано ниже.

r.GET("/test", func(c *gin.Context) {
    c.Request.URL.Path = "/test2"
    r.HandleContext(c)
})
r.GET("/test2", func(c *gin.Context) {
    c.JSON(200, gin.H{"hello": "world"})
})