Nginx:位置、别名和 try_files

Nginx:位置、别名和 try_files

我们的 Nginx 配置中有以下神奇之处:

location /uploads {
  alias /mnt/macchina;
  location ~ ^/uploads/ {
    try_files $uri @rewrite;
  }
}

location @rewrite {
  rewrite ^/(.*)$ /index.php?q=$1;
}

它有效,但对我来说看起来不像诗歌,所以我想可能有一种更简单的方法。

目标是对于/uploads/Nginx 来说应该将其视为root/mnt/macchinaattry_files$urigoto @rewritewhere 它仍然应该将其root视为/mnt/macchina

有没有更好的办法?

答案1

简化它需要修改 PHP Web 应用程序,使其更加智能地确定所请求的 URL。

虽然大多数 PHP Web 应用程序只是从路径信息中获取此信息,但您的应用程序显然没有这样做,并且要求将请求路径传递到参数中。以这种方式编写重写的原因是从路径中q剥离前导。/

使用正确编写的 PHP 应用程序从路径信息中获取 URL,您可以完全摆脱重写,只需使用try_files $uri /index.php;。与应用程序开发人员交谈。

相关内容