我有以下 nginxlocation
块:
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;
}
问题是/publish
like中的文件execute.php
不会被 fastcgi PHP 处理器处理,它们在从 CURL 调用时只会输出纯 PHP 代码。/publish
如果文件以 .php 结尾,我如何强制执行块中定义的安全规则,同时仍执行 PHP 块?
答案1
nginx 仅对location
一个请求应用一个块。
include
如果您想在块之间共享指令,请使用,或者如果您想将多个使用 PHP 的块指向单个 PHP 处理,请使用try_files
指向某个位置。@php
location
location