Nginx 位置 try_files 匹配除 root 之外的所有内容

Nginx 位置 try_files 匹配除 root 之外的所有内容

我有一个如下所示的位置块:

location / {
    index index.php;
    try_files /legacy$uri /legacy$uri/ $bootstrap?$args;
}

这有效创造,除了当我去http://本地主机/它匹配的/legacy/不是我想要的。除了当它$uri只是一个斜线时,我该如何 try_files?

答案1

添加另一个位置块:

location  = / {
  //do something
}

根据文档,nginx 将:

  1. 仅匹配一个位置块
  2. 将根据以下内容选择位置块:
    1. 使用“=”进行匹配
    2. 使用“^~”的常规字符串
    3. 正则表达式(按列出的顺序)
    4. 所有其他常规字符串

因此,对顶级(/)的请求将与上面的位置块匹配,而所有其他请求将与您现有的位置块匹配。

相关内容