転載元:Nginxのrewriteコマンド(break、last、redirect、permanent)
rewrite
serverブロックの下では、rewrite部分が最初に実行され、次にlocationブロックが照合されます
サーバー内の rewrite Break と last に違いはありません。これらは場所と一致するため、新しいリクエストを開始するために last を使用する必要はありません。空白のままにしても構いません
location に rewrite:
last を書き込まないでください。そしてブレーク - これらを順番に実行して書き換えるプロセスです
1. rewrite Break - URL が書き換えられると、現在のリソースが直接使用され、その場所にある残りのステートメントは実行されなくなり、アドレス バーの URL は変更されません。
2. 最後に書き換え - URL が書き換えられた後、すぐに新しいリクエストを開始し、サーバー ブロックに再度入り、位置一致を再試行します。一致が 10 回を超えて失敗すると、500 エラーが報告され、アドレス バーの URL が報告されます。変わらず
3. リダイレクトの書き換え – 302 一時リダイレクトを返し、アドレス バーにはリダイレクトされた URL が表示され、クローラーは URL を更新しません (一時的なものであるため)
4. 永続的な書き換え - 301 永続的なリダイレクトを返します。アドレス バーにはリダイレクトされた URL が表示され、クローラーは URL を更新します
場所を書き換えた後、動的な fastcgi リクエスト (.php、.jsp) などの他の処理を実行する必要がある場合は、 last を使用して新しいリクエストを開始し続ける必要があります
(ルートの場所には last を使用することをお勧めします。.php などの fastcgi リクエストがある場合、処理が継続されるためです)
の前に配置されません
実際のファイルを直接リクエストしている場合は、break ステートメントを使用して書き換えチェックを停止します
if (-f $リクエストファイル名) {
休憩
}