Nginx Location 指令,尾部或前置斜杠的效果是什么?

Nginx Location directives, what is the effect of trailing or prepended slashes?

有什么区别
location somefolder {

}

location somefolder/ {

}

location /somefolder {

}

location /somefolder/ {

}

我知道这是一个愚蠢的问题,但老实说,有时我自己也会感到困惑,如果能简明扼要地回答就好了!

找到我自己的答案。

前两个配置不会匹配任何内容,因为每个位置都以“/”开头。所以它们基本上是无效的位置。 Server Overflow 上的一位评论者提到了这一点,事实证明它是正确的。

对于大多数用途来说,后两个是等效的,因为 NGINX 会将第三个 301 重定向到第四个。因此 http://somedomain/somefolder 的请求将被重定向到 http://somedomain/somefolder/。如果您确实有一个名为 /somefolder 的位置,例如一个字面上称为那个的文件,那么您可以使用“=”运算符创建一个位置,这会强制进行完全匹配,因此

location = /somefolder {

}

为了最佳实践,请始终使用 /somefolder/ 格式,除非您确实需要我刚才提到的例外情况。