Saya tidak mengerti perbedaan antara break dan last (flag of rewrite). Dokumentasinya agak musykil. Saya sudah mencoba untuk beralih di antara keduanya di beberapa konfigurasi saya, tetapi saya tidak dapat menemukan perbedaan dalam perilaku. Adakah yang bisa menjelaskan bendera-bendera ini lebih terinci? Lebih disukai dengan contoh yang menunjukkan perilaku yang berbeda ketika membalik satu bendera ke yang lain.
45
Jawaban:
Anda mungkin memiliki set aturan penulisan ulang yang berbeda untuk lokasi yang berbeda. Ketika modul penulisan ulang bertemu
last
, ia berhenti memproses set saat ini dan permintaan ditulis ulang dilewatkan sekali lagi untuk menemukan lokasi yang sesuai (dan set aturan penulisan ulang yang baru). Jika aturan berakhir denganbreak
, penulisan ulang juga berhenti, tetapi permintaan yang ditulis ulang tidak diteruskan ke lokasi lain.Yaitu, jika ada dua lokasi: loc1 dan loc2, dan ada aturan penulisan ulang di loc1 yang mengubah loc1 ke loc2 DAN diakhiri dengan
last
, permintaan akan ditulis ulang dan diteruskan ke lokasi loc2. Jika aturan berakhir denganbreak
, itu akan menjadi milik lokasi loc1.sumber
OP lebih suka contoh. Juga, apa yang ditulis @minaev, hanyalah sebagian dari cerita! Jadi, ini dia ...
Contoh 1: Tidak ada tanda (putus atau terakhir)
Hasil:
Penjelasan:
Sebab
rewrite
, bendera itu opsional!Contoh 2: Blok lokasi di luar (istirahat atau terakhir)
Hasil:
Penjelasan:
Di luar blok lokasi, keduanya
break
danlast
berperilaku dengan cara yang tepat ...location
kecocokan)Contoh 3: Blok lokasi di dalam - "break"
Hasil:
Penjelasan:
Di dalam blok lokasi,
break
bendera akan melakukan hal berikut ...location
blok saat iniContoh 4: Blok lokasi di dalam - "terakhir"
Hasil:
Penjelasan:
Di dalam blok lokasi,
last
bendera akan melakukan hal berikut ...rewrite
hasil.Ringkasan:
rewrite
kondisi dengan benderabreak
ataulast
pertandingan, Nginx berhenti mengurai lagirewrites
!break
ataulast
, Nginx melakukan pekerjaan yang sama (berhenti memproses lagi kondisi penulisan ulang).break
, Nginx hanya berhenti memproses lagi kondisi menulis ulanglast
, Nginx berhenti memproses lagi kondisi penulisan ulang dan kemudian mulai mencari pencocokanlocation
blok yang baru! Nginx juga mengabaikan semua yang adarewrites
dilocation
blok baru !Catatan Akhir:
Saya rindu untuk memasukkan beberapa kasus tepi (sebenarnya masalah umum dengan penulisan ulang, seperti
500 internal error
). Tapi, itu akan keluar dari ruang lingkup pertanyaan ini. Mungkin, contoh 1 juga di luar jangkauan!sumber