diff --git a/cmd/web_graceful.go b/cmd/web_graceful.go index 5db065818..91ac024dd 100644 --- a/cmd/web_graceful.go +++ b/cmd/web_graceful.go @@ -9,9 +9,11 @@ import ( "net" "net/http" "net/http/fcgi" + "strings" "code.gitea.io/gitea/modules/graceful" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" ) func runHTTP(network, listenAddr, name string, m http.Handler) error { @@ -48,7 +50,12 @@ func runFCGI(network, listenAddr, name string, m http.Handler) error { fcgiServer := graceful.NewServer(network, listenAddr, name) err := fcgiServer.ListenAndServe(func(listener net.Listener) error { - return fcgi.Serve(listener, m) + return fcgi.Serve(listener, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { + if setting.AppSubURL != "" { + req.URL.Path = strings.TrimPrefix(req.URL.Path, setting.AppSubURL) + } + m.ServeHTTP(resp, req) + })) }) if err != nil { log.Fatal("Failed to start FCGI main server: %v", err) diff --git a/routers/routes/web.go b/routers/routes/web.go index e59609d83..6b8d9fdb2 100644 --- a/routers/routes/web.go +++ b/routers/routes/web.go @@ -168,15 +168,6 @@ func WebRoutes() *web.Route { r.Use(h) } - if (setting.Protocol == setting.FCGI || setting.Protocol == setting.FCGIUnix) && setting.AppSubURL != "" { - r.Use(func(next http.Handler) http.Handler { - return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { - req.URL.Path = strings.TrimPrefix(req.URL.Path, setting.AppSubURL) - next.ServeHTTP(resp, req) - }) - }) - } - mailer.InitMailRender(templates.Mailer()) if setting.Service.EnableCaptcha {