From 94a2d4b475cd8f23cd6ef2865d22a78cbce41c69 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:06:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20PHP=20=E9=85=8D=E7=BD=AE=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20pathinfo=20=E9=85=8D=E7=BD=AE=20(#3269)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs https://github.com/1Panel-dev/1Panel/issues/3254 --- backend/utils/nginx/components/server.go | 31 +++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) 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{