Ces emplacements sont différents. Le premier correspondra /production
par exemple, ce n'est peut-être pas ce que vous attendiez. Je préfère donc utiliser des emplacements avec une barre oblique de fin.
Notez également que:
Si un emplacement est défini par une chaîne de préfixe qui se termine par le caractère barre oblique et que les demandes sont traitées par l'un des proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass ou memcached_pass, alors en réponse à une demande avec un URI égal à cette chaîne, mais sans le barre oblique de fin, une redirection permanente avec le code 301 sera renvoyée à l'URI demandé avec la barre oblique ajoutée.
Si vous avez quelque chose comme:
location /product/ {
proxy_pass http://backend;
}
et allez à http://example.com/product
, nginx vous redirigera automatiquement vers http://example.com/product/
.
Même si vous n'utilisez pas l'une de ces directives ci-dessus, vous pouvez toujours effectuer la redirection manuellement:
location = /product {
rewrite ^ /product/ permanent;
}
ou, si vous ne voulez pas de redirection, vous pouvez utiliser:
location = /product {
proxy_pass http://backend;
}
Non, ce ne sont pas les mêmes - vous devrez utiliser une barre oblique de fin avec une expression régulière pour correspondre aux deux, c.-à-d.
Voir cette réponse associée pour une réponse plus détaillée sur la façon de faire correspondre l'intégralité de l'URL.
la source