Nginx 执行多个位置块

Nginx 执行多个位置块

我有以下 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;
}

问题是/publishlike中的文件execute.php不会被 fastcgi PHP 处理器处理,它们在从 CURL 调用时只会输出纯 PHP 代码。/publish如果文件以 .php 结尾,我如何强制执行块中定义的安全规则,同时仍执行 PHP 块?

答案1

nginx 仅对location一个请求应用一个块。

include如果您想在块之间共享指令,请使用,或者如果您想将多个使用 PHP 的块指向单个 PHP 处理,请使用try_files指向某个位置。@phplocationlocation

相关内容