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/
格式,除非您确实需要我刚才提到的例外情况。
即
有什么区别location somefolder {
}
和
location somefolder/ {
}
和
location /somefolder {
}
和
location /somefolder/ {
}
我知道这是一个愚蠢的问题,但老实说,有时我自己也会感到困惑,如果能简明扼要地回答就好了!
找到我自己的答案。
前两个配置不会匹配任何内容,因为每个位置都以“/
”开头。所以它们基本上是无效的位置。 Server Overflow 上的一位评论者提到了这一点,事实证明它是正确的。
对于大多数用途来说,后两个是等效的,因为 NGINX 会将第三个 301 重定向到第四个。因此 http://somedomain/somefolder
的请求将被重定向到 http://somedomain/somefolder/
。如果您确实有一个名为 /somefolder 的位置,例如一个字面上称为那个的文件,那么您可以使用“=
”运算符创建一个位置,这会强制进行完全匹配,因此
location = /somefolder {
}
为了最佳实践,请始终使用 /somefolder/
格式,除非您确实需要我刚才提到的例外情况。