Nginx执行多个位置块

我有以下nginx location块:

 location ^~ /publish { allow 127.0.0.1; #Allow home allow 99.100.101.102; deny all; } 

然后这个location块来处理PHP之后:

 location ~\.php { try_files $uri =404; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; } 

问题是,像execute.php这样的/publish类似的文件并没有被fastcgi PHP处理器处理,只是从CURL调用时输出纯PHP代码。 如何执行/publish块中定义的安全规则,但如果文件以.php结尾,仍然执行PHP块?

nginx仅将一个location块应用于请求。

如果您想在块之间共享指令,请使用include如果您希望将多个使用PHP的location块指向一个PHP处理location使用指向@php位置的try_files