我有以下 nginxlocation
块:
location ^~ /publish {
allow 127.0.0.1;
#Allow home
allow 99.100.101.102;
deny all;
}
Run Code Online (Sandbox Code Playgroud)
然后这个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;
}
Run Code Online (Sandbox Code Playgroud)
问题是/publish
likeexecute.php
中的文件没有被 fastcgi PHP 处理器处理,它们只是在从 CURL 调用时输出纯 PHP 代码。/publish
如果文件以 .php 结尾,我如何强制执行块中定义的安全规则,但仍然执行 PHP 块?
nginx 只location
对一个请求应用一个块。
include
如果您想在块之间共享指令,请使用,或者如果您想将多个使用 PHP 的块指向单个 PHP 处理,则使用try_files
指向一个@php
位置。location
location