Nginx esegue blocchi di posizione multipli

Ho il seguente block di location nginx:

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

Quindi questo block di location per elaborare PHP dopo:

 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; } 

Il problema è che i file all'interno di /publish come execute.php non vengono elaborati dal processre di fastcgi PHP, ma semplicemente emettono il codice PHP puro quando richiamati da CURL. Come faccio ad applicare le regole di sicurezza definite nel block /publish ma anche eseguire il block PHP se il file termina in .php?

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.