diff --git a/modules/git/submodule.go b/modules/git/submodule.go index 0c7c2696c3..0b8efc26dc 100644 --- a/modules/git/submodule.go +++ b/modules/git/submodule.go @@ -6,6 +6,7 @@ package git import ( "strings" + "github.com/gogits/gogs/modules/setting" ) type SubModule struct { @@ -51,8 +52,14 @@ func (sf *SubModuleFile) RefUrl() string { i := strings.Index(url, "@") j := strings.LastIndex(url, ":") if i > -1 && j > -1 { - return "http://" + url[i+1:j] + "/" + url[j+1:] + // fix problem with reverse proxy works only with local server + if strings.Contains(setting.AppUrl,url[i+1:j]) { + return setting.AppUrl + url[j+1:] + } else { + return "http://" + url[i+1:j] + "/" + url[j+1:] + } } + return url }