diff --git a/lib/modules/datasource/go/base.spec.ts b/lib/modules/datasource/go/base.spec.ts
index 3598fdd7c449801347712d4b95b6b677a830f9ed..c70d690ce2648a4ad8f5109797c9ac15cabaede8 100644
--- a/lib/modules/datasource/go/base.spec.ts
+++ b/lib/modules/datasource/go/base.spec.ts
@@ -155,7 +155,7 @@ describe('modules/datasource/go/base', () => {
       it('supports GitLab deps on private subgroups', async () => {
         httpMock
           .scope('https://gitlab.com')
-          .get('/group/subgroup/private.git/v3?go-get=1')
+          .get('/group/subgroup/private?go-get=1')
           .reply(200, Fixtures.get('go-get-gitlab.html'));
 
         const res = await BaseGoDatasource.getDatasource(
@@ -334,6 +334,24 @@ describe('modules/datasource/go/base', () => {
         });
       });
 
+      it('supports GitLab EE deps in private subgroup with vcs indicator and subfolders', async () => {
+        hostRules.hostType.mockReturnValue('gitlab');
+        httpMock
+          .scope('https://my.custom.domain')
+          .get('/golang/subgroup/myrepo?go-get=1')
+          .reply(200, Fixtures.get('go-get-gitlab-ee-private-subgroup.html'));
+
+        const res = await BaseGoDatasource.getDatasource(
+          'my.custom.domain/golang/subgroup/myrepo.git/v2/database',
+        );
+
+        expect(res).toEqual({
+          datasource: GitlabTagsDatasource.id,
+          packageName: 'golang/subgroup/myrepo',
+          registryUrl: 'https://my.custom.domain',
+        });
+      });
+
       it('supports GitLab EE monorepo deps in subgroup', async () => {
         hostRules.hostType.mockReturnValue('gitlab');
         httpMock
@@ -410,7 +428,7 @@ describe('modules/datasource/go/base', () => {
           '<meta name="go-import" content="org.visualstudio.com/my-project/_git/my-repo.git git https://org.visualstudio.com/my-project/_git/my-repo.git" />';
         httpMock
           .scope('https://org.visualstudio.com')
-          .get('/my-project/_git/my-repo.git?go-get=1')
+          .get('/my-project/_git/my-repo?go-get=1')
           .reply(200, meta);
         const res = await BaseGoDatasource.getDatasource(
           'org.visualstudio.com/my-project/_git/my-repo.git',
@@ -424,7 +442,7 @@ describe('modules/datasource/go/base', () => {
       it('returns null for invalid azure devops source', async () => {
         httpMock
           .scope('https://dev.azure.com')
-          .get('/foo/bar.git?go-get=1')
+          .get('/foo/bar?go-get=1')
           .reply(200);
 
         const res = await BaseGoDatasource.getDatasource(
@@ -491,7 +509,7 @@ describe('modules/datasource/go/base', () => {
           '<meta name="go-import" content="example.com/gitlab/my-project/my-repo.git git https://example.com/gitlab/my-project/my-repo" />';
         httpMock
           .scope('https://example.com')
-          .get('/gitlab/my-project/my-repo.git?go-get=1')
+          .get('/gitlab/my-project/my-repo?go-get=1')
           .reply(200, meta);
 
         const res = await BaseGoDatasource.getDatasource(
@@ -508,7 +526,7 @@ describe('modules/datasource/go/base', () => {
 
         httpMock
           .scope('https://example.com')
-          .get('/gitlab/my-project/my-repo.git?go-get=1')
+          .get('/gitlab/my-project/my-repo?go-get=1')
           .reply(200, meta);
 
         const res2 = await BaseGoDatasource.getDatasource(
diff --git a/lib/modules/datasource/go/base.ts b/lib/modules/datasource/go/base.ts
index d465711bda77a7255ecf22cbdf6e5cbad5e90369..06ee3276bdd375147a0fb201a155c33cab4054d6 100644
--- a/lib/modules/datasource/go/base.ts
+++ b/lib/modules/datasource/go/base.ts
@@ -100,7 +100,7 @@ export class BaseGoDatasource {
   private static async goGetDatasource(
     goModule: string,
   ): Promise<DataSource | null> {
-    const goModuleUrl = goModule.replace(/\.git\/v2$/, '');
+    const goModuleUrl = goModule.replace(/\.git(\/[a-z0-9/]*)?$/, '');
     const pkgUrl = `https://${goModuleUrl}?go-get=1`;
     const { body: html } = await BaseGoDatasource.http.get(pkgUrl);