diff --git a/main.go b/main.go
index 0c5a9fcb2d4b5816b2149a8ea97a8ea7ff4acced..324e4dc113480552bb45f1cf6bbcc1940f373f32 100644
--- a/main.go
+++ b/main.go
@@ -36,7 +36,6 @@ var listenUmask = flag.Int("listenUmask", 022, "Umask for Unix socket, default:
 var authBackend = flag.String("authBackend", "http://localhost:8080", "Authentication/authorization backend")
 var authSocket = flag.String("authSocket", "", "Optional: Unix domain socket to dial authBackend at")
 var pprofListenAddr = flag.String("pprofListenAddr", "", "pprof listening address, e.g. 'localhost:6060'")
-var relativeURLRoot = flag.String("relativeURLRoot", "/", "GitLab relative URL root")
 var documentRoot = flag.String("documentRoot", "public", "Path to static files content")
 var responseHeadersTimeout = flag.Duration("proxyHeadersTimeout", time.Minute, "How long to wait for response headers when proxying the request")
 var developmentMode = flag.Bool("developmentMode", false, "Allow to serve assets from Rails app")
@@ -170,6 +169,5 @@ func main() {
 	}
 
 	upstream := newUpstream(*authBackend, proxyTransport)
-	upstream.SetRelativeURLRoot(*relativeURLRoot)
 	log.Fatal(http.Serve(listener, upstream))
 }
diff --git a/upstream.go b/upstream.go
index 7530f378c28cfb6f816c7bf5b66b7f1ce12af907..a0f179c51b86af66a38d7023395f3bd5613a696f 100644
--- a/upstream.go
+++ b/upstream.go
@@ -68,25 +68,22 @@ func newUpstream(authBackend string, authTransport http.RoundTripper) *upstream
 	if err != nil {
 		log.Fatalln(err)
 	}
+	relativeURLRoot := u.Path
+	if !strings.HasSuffix(relativeURLRoot, "/") {
+		relativeURLRoot += "/"
+	}
+	u.Path = "" // Would cause redirect loop in ReverseProxy
 
 	up := &upstream{
 		authBackend:     authBackend,
 		httpClient:      &http.Client{Transport: authTransport},
 		httpProxy:       httputil.NewSingleHostReverseProxy(u),
-		relativeURLRoot: "/",
+		relativeURLRoot: relativeURLRoot,
 	}
 	up.httpProxy.Transport = authTransport
 	return up
 }
 
-func (u *upstream) SetRelativeURLRoot(relativeURLRoot string) {
-	u.relativeURLRoot = relativeURLRoot
-
-	if !strings.HasSuffix(u.relativeURLRoot, "/") {
-		u.relativeURLRoot += "/"
-	}
-}
-
 func (u *upstream) ServeHTTP(ow http.ResponseWriter, r *http.Request) {
 	var g httpRoute