Diese Orte sind unterschiedlich. Das erste wird /production
zum Beispiel übereinstimmen , das könnte nicht das sein, was Sie erwartet haben. Daher bevorzuge ich Positionen mit einem abschließenden Schrägstrich.
Beachten Sie auch Folgendes:
Wenn ein Speicherort durch eine Präfixzeichenfolge definiert ist, die mit dem Schrägstrich endet, und Anforderungen von proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass oder memcached_pass verarbeitet werden, erfolgt dies als Antwort auf eine Anforderung mit einem URI, der dieser Zeichenfolge entspricht, jedoch ohne Nach dem Schrägstrich wird eine permanente Umleitung mit dem Code 301 mit dem angehängten Schrägstrich an die angeforderte URI zurückgegeben.
Wenn Sie etwas haben wie:
location /product/ {
proxy_pass http://backend;
}
und gehen Sie zu http://example.com/product
, Nginx leitet Sie automatisch zu weiter http://example.com/product/
.
Auch wenn Sie eine der oben genannten Anweisungen nicht verwenden, können Sie die Umleitung jederzeit manuell durchführen:
location = /product {
rewrite ^ /product/ permanent;
}
Wenn Sie keine Umleitung wünschen, können Sie Folgendes verwenden:
location = /product {
proxy_pass http://backend;
}
Nein, diese sind nicht gleich - Sie müssen einen abschließenden Schrägstrich mit einem regulären Ausdruck verwenden, um beiden zu entsprechen, d. H.
In dieser Antwort finden Sie eine detailliertere Antwort zum Abgleichen der gesamten URL.
quelle