diff --git a/backend/utils/nginx/components/server.go b/backend/utils/nginx/components/server.go index 2e3890e2c..cea31d2a1 100644 --- a/backend/utils/nginx/components/server.go +++ b/backend/utils/nginx/components/server.go @@ -281,9 +281,38 @@ func (s *Server) UpdatePHPProxy(proxy []string, localPath string) { Parameters: []string{"fastcgi_params"}, }) if localPath == "" { + block.Directives = append(block.Directives, &Directive{ + Name: "set", + Parameters: []string{"$real_script_name", "$fastcgi_script_name"}, + }) + ifDir := &Directive{ + Name: "if", + Parameters: []string{"($fastcgi_script_name ~ \"^(.+?\\.php)(/.+)$\")"}, + } + ifDir.Block = &Block{ + Directives: []IDirective{ + &Directive{ + Name: "set", + Parameters: []string{"$real_script_name", "$1"}, + }, + &Directive{ + Name: "set", + Parameters: []string{"$path_info", "$2"}, + }, + }, + } + block.Directives = append(block.Directives, ifDir) block.Directives = append(block.Directives, &Directive{ Name: "fastcgi_param", - Parameters: []string{"SCRIPT_FILENAME", "$document_root$fastcgi_script_name"}, + Parameters: []string{"SCRIPT_FILENAME", "$document_root$real_script_name"}, + }) + block.Directives = append(block.Directives, &Directive{ + Name: "fastcgi_param", + Parameters: []string{"SCRIPT_NAME", "$real_script_name"}, + }) + block.Directives = append(block.Directives, &Directive{ + Name: "fastcgi_param", + Parameters: []string{"PATH_INFO", "$path_info"}, }) } else { block.Directives = append(block.Directives, &Directive{