diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index a10cdcce72b9da383bf4c921eec746788dc46ad7..37feff79999561954faf962405280fa7488b9dd6 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -7,8 +7,10 @@ class HelpController < ApplicationController
     @help_index = File.read(Rails.root.join('doc', 'README.md'))
 
     # Prefix Markdown links with `help/` unless they are external links
-    # See http://rubular.com/r/MioSrVLK3S
-    @help_index.gsub!(%r{(\]\()(?!.+://)([^\)\(]+\))}, '\1/help/\2')
+    # See http://rubular.com/r/X3baHTbPO2
+    @help_index.gsub!(%r{(?<delim>\]\()(?!.+://)(?!/)(?<link>[^\)\(]+\))}) do
+      "#{$~[:delim]}#{Gitlab.config.gitlab.relative_url_root}/help/#{$~[:link]}"
+    end
   end
 
   def show
diff --git a/changelogs/unreleased/25199-fix-broken-urls-in-help-page.yml b/changelogs/unreleased/25199-fix-broken-urls-in-help-page.yml
new file mode 100644
index 0000000000000000000000000000000000000000..58efd9113f2f1b5c1222b923173814891fd902de
--- /dev/null
+++ b/changelogs/unreleased/25199-fix-broken-urls-in-help-page.yml
@@ -0,0 +1,4 @@
+---
+title: Don't change relative URLs to absolute URLs in the Help page
+merge_request: 
+author: 
diff --git a/spec/controllers/help_controller_spec.rb b/spec/controllers/help_controller_spec.rb
index cffed987f6bcf3ea1d97a64eecd55c6e8b0b9b59..d3489324a9cff4176d4135b2b77a70d11a0b1418 100644
--- a/spec/controllers/help_controller_spec.rb
+++ b/spec/controllers/help_controller_spec.rb
@@ -8,26 +8,32 @@ describe HelpController do
   end
 
   describe 'GET #index' do
-    context 'when url prefixed without /help/' do
-      it 'has correct url prefix' do
-        stub_readme("[API](api/README.md)")
+    context 'with absolute url' do
+      it 'keeps the URL absolute' do
+        stub_readme("[API](/api/README.md)")
+
         get :index
-        expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
+
+        expect(assigns[:help_index]).to eq '[API](/api/README.md)'
       end
     end
 
-    context 'when url prefixed with help' do
-      it 'will be an absolute path' do
-        stub_readme("[API](helpful_hints/README.md)")
+    context 'with relative url' do
+      it 'prefixes it with /help/' do
+        stub_readme("[API](api/README.md)")
+
         get :index
-        expect(assigns[:help_index]).to eq '[API](/help/helpful_hints/README.md)'
+
+        expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
       end
     end
 
     context 'when url is an external link' do
-      it 'will not be changed' do
+      it 'does not change it' do
         stub_readme("[external](https://some.external.link)")
+
         get :index
+
         expect(assigns[:help_index]).to eq '[external](https://some.external.link)'
       end
     end
diff --git a/spec/features/help_pages_spec.rb b/spec/features/help_pages_spec.rb
index 73d0383714425c04275bd454b2491a82998096f9..4319d6db0d25301fdfe0e6e7fe2711c2abac60ae 100644
--- a/spec/features/help_pages_spec.rb
+++ b/spec/features/help_pages_spec.rb
@@ -12,9 +12,9 @@ describe 'Help Pages', feature: true do
   end
 
   describe 'Get the main help page' do
-    shared_examples_for 'help page' do
+    shared_examples_for 'help page' do |prefix: ''|
       it 'prefixes links correctly' do
-        expect(page).to have_selector('div.documentation-index > ul a[href="/help/api/README.md"]')
+        expect(page).to have_selector(%(div.documentation-index > ul a[href="#{prefix}/help/api/README.md"]))
       end
     end
 
@@ -33,5 +33,14 @@ describe 'Help Pages', feature: true do
 
       it_behaves_like 'help page'
     end
+
+    context 'with a relative installation' do
+      before do
+        stub_config_setting(relative_url_root: '/gitlab')
+        visit help_path
+      end
+
+      it_behaves_like 'help page', prefix: '/gitlab'
+    end
   end
 end