diff --git a/sub/subController.go b/sub/subController.go index 3abd7f1e..41431d1f 100644 --- a/sub/subController.go +++ b/sub/subController.go @@ -3,6 +3,7 @@ package sub import ( "encoding/base64" "net" + "strings" "github.com/gin-gonic/gin" ) @@ -55,7 +56,10 @@ func (a *SUBController) initRouter(g *gin.RouterGroup) { func (a *SUBController) subs(c *gin.Context) { subId := c.Param("subid") - host, _, _ := net.SplitHostPort(c.Request.Host) + host := c.Request.Host + if colonIndex := strings.LastIndex(host, ":"); colonIndex != -1 { + host, _, _ = net.SplitHostPort(c.Request.Host) + } subs, header, err := a.subService.GetSubs(subId, host) if err != nil || len(subs) == 0 { c.String(400, "Error!") @@ -80,7 +84,10 @@ func (a *SUBController) subs(c *gin.Context) { func (a *SUBController) subJsons(c *gin.Context) { subId := c.Param("subid") - host, _, _ := net.SplitHostPort(c.Request.Host) + host := c.Request.Host + if colonIndex := strings.LastIndex(host, ":"); colonIndex != -1 { + host, _, _ = net.SplitHostPort(c.Request.Host) + } jsonSub, header, err := a.subJsonService.GetJson(subId, host) if err != nil || len(jsonSub) == 0 { c.String(400, "Error!") diff --git a/web/controller/util.go b/web/controller/util.go index ac08f9af..65a7fca5 100644 --- a/web/controller/util.go +++ b/web/controller/util.go @@ -61,7 +61,11 @@ func html(c *gin.Context, name string, title string, data gin.H) { data = gin.H{} } data["title"] = title - data["host"], _, _ = net.SplitHostPort(c.Request.Host) + host := c.Request.Host + if colonIndex := strings.LastIndex(host, ":"); colonIndex != -1 { + host, _, _ = net.SplitHostPort(c.Request.Host) + } + data["host"] = host data["request_uri"] = c.Request.RequestURI data["base_path"] = c.GetString("base_path") c.HTML(http.StatusOK, name, getContext(data))