ホームページ  >  に質問  >  本文

ブレークなしとブレークありの nginx 書き換えの違い

nginx書き換えの構成時に問題が見つかりました

リーリー

これは正常ですが、休憩を削除すると、

リーリー

この時点でエラーが報告されました

「/404.html」の処理中の書き換えまたは内部リダイレクト サイクル

ブレークを追加する場合と追加しない場合の違いは何ですか? ブレークを追加しない場合、書き換え後はどうなりますか?私の疑問を解消してくださるよう神にお願いしてください

----------更新----------

404.html ファイルが存在します

breakをlastに変更しても上記のエラーが報告されるので、breakを追加したりbreakをlastに変更しなくても、上記の書き換えでuriが一致した場合に再度locationブロックが一致すると思うのですが、値がの変数 ($document_root、$fastcgi_script_name...) が変更されていないため、if ブロックが再度入力され、ループが 10 回を超えるまで続き、その後 500 エラーが報告されます

----------また更新----------

さらにテストを行った結果、ロケーション ブロックに書き換え後にブレーク フラグがない場合、または書き換え後に最後のフラグがある場合、元のロケーション ブロックを入力したままであれば、書き換え後にロケーション ブロックが再選択されることがわかりました。とすると、変数 ($ document_root, $fastcgi_script_name...) は変わりませんが、書き換え後に別のロケーションブロックにリダイレクトされると、この時点で変数が変わります

習慣沉默習慣沉默2714日前607

全員に返信(1)返信します

  • 習慣沉默

    習慣沉默2017-05-16 17:11:28

    ブレークを追加しない場合、処理は停止せず、次の書き換えルールを探し続けます。

    すべてのリクエストを 404.html に書き換えます。 404.html が存在しない場合、無限ループになります。

    返事
    0
  • キャンセル返事