nginx 将别名文件夹的子目录指向基目录

nginx 将别名文件夹的子目录指向基目录

我是 Nginx 新手。现在我对 nginx 配置感到困惑:

我的网站包含位于不同位置的文件夹:

location / {
  root /Path1;
}

location ^~ /download {
  alias /Path2;
}

当我查询时http://mysite/download,我访问的是的内容,/Path2而不是/Path1

现在我想在包含我的私人文件下添加一个子目录download,并且我想添加密码保护。所以我添加了:

location /download/personal {
  auth_basic "Admin Login";
  auth_basic_user_file Path_to_htpasswd;
}

但在输入我的凭据后查询时出现 404 错误http://mysite/download/personal。根据 nginx 错误日志,我被定向到/Path1/download/personal,但该目录不存在。我该如何配置 nginx,以便所有对 的访问http://mysite/download/*都将定向到 中的同一目录/Path2

更新:

我可能找到了一个解决方案:只需将子目录配置放在父级conf中:

location ^~ /download {
  alias /Path2;
  location /download/personal {
    auth_basic "Admin Login";
    auth_basic_user_file Path_to_htpasswd;
  }
}

这是正确的吗?或者有更好的解决方案吗?

答案1

您已经知道如何执行此操作。您需要添加alias指向正确目录的。

相关内容