Php Nginx重写规则:检查不存在的文件和文件夹

Php Nginx重写规则:检查不存在的文件和文件夹,php,nginx,rewrite,rule,Php,Nginx,Rewrite,Rule,我正在尝试设置nginx重写规则,如下所示: 原始结构: domain.com/index.php?site=project 现在我尝试使用nginx重写引擎屏蔽它: if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/(.+)$ /index.php?site=$1 last; break; } 如何禁止文件夹

我正在尝试设置nginx重写规则,如下所示:

原始结构:

domain.com/index.php?site=project

现在我尝试使用nginx重写引擎屏蔽它:

if (-f $request_filename) {
        break;
      }
      if (!-f $request_filename) {
        rewrite ^/(.+)$ /index.php?site=$1 last;
        break;
      }
如何禁止文件夹(以斜杠结尾的内容)和不存在的文件? 我读了很多关于

试试你的文件

但我不能让它工作

目前我有

    try_files $uri $uri/ @app;

但这行不通。 我做错了什么

此外: 我需要修改我的PHP代码吗? 或者纯重写可以吗?

您可以关闭该选项,以防止用户查看文件夹。我不知道你说的“禁止不存在的文件”是什么意思。访客只得到一个404

location @app {
rewrite ^/ /404.php last;
}