在nginxconfiguration中使用尾部斜杠

location /product { proxy_pass http://10.0.0.25:8080; } 

如果我使用我的产品文件夹的第一个位置说明,我应该使用http://mysdomain.com/product/ ,我不能从浏览器使用http://mysdomain.com/product 。 我的意思是我应该使用URL的斜线结束。 我想用两个stuation访问产品文件夹。

这是否有区别:

  location /product/ { proxy_pass http://10.0.0.25:8080; } 

不,这些是不一样的 – 你将需要使用一个正则expression式的尾部斜杠来匹配两个,即

 location ~ /product/? 

有关如何匹配整个url的更详细的回复,请参阅此相关答案 。

这些地点是不同的。 第一个匹配/production ,例如,可能不是你所期望的。 所以我更喜欢使用带有斜线的位置。

另外请注意:

如果某个位置由以斜杠字符结尾的前缀string定义,并且请求由proxy_pass,fastcgi_pass,uwsgi_pass,scgi_pass或memcached_pa​​ss中的一个进行处理,那么响应于URI等于此string的请求,但没有结尾的斜杠,代码为301的永久性redirect将被返回到所请求的URI,并附有斜线。

如果你有这样的东西:

 location /product/ { proxy_pass http://backend; } 

并转到http://example.com/product会自动将您redirect到http://example.com/product/

即使你不使用上面的这些指令之一,你也可以随时手动redirect:

 location = /product { rewrite ^ /product/ permanent; } 

或者,如果你不想redirect,你可以使用:

 location = /product { proxy_pass http://backend; }