Masalah ditemui semasa mengkonfigurasi penulisan semula nginx
if (!-e $document_root$fastcgi_script_name) {
rewrite ^.*$ /404.html break;
}
Ini adalah perkara biasa, tetapi selepas mengeluarkan rehat,
if (!-e $document_root$fastcgi_script_name) {
rewrite ^.*$ /404.html;
}
Ralat dilaporkan pada masa ini
tulis semula atau kitaran ubah hala dalaman semasa memproses "/404.html
Apakah perbezaan antara menambah dan tidak menambah rehat Apabila tidak menambah rehat, apa yang berlaku selepas menulis semula? Minta Allah jelaskan keraguan saya
--------Kemas kini---------
404.html fail wujud
Apabila saya menukar rehat kepada terakhir, ralat di atas masih akan dilaporkan, jadi saya fikir tanpa menambah rehat atau menukar rehat kepada terakhir, apabila uri sepadan dengan penulisan semula di atas, blok lokasi akan dipadankan semula, tetapi nilainya pembolehubah ($document_root, $fastcgi_script_name...) tidak berubah, menyebabkan blok if dimasukkan semula, dan gelung berterusan sehingga lebih daripada 10 kali, dan kemudian ralat 500 dilaporkan
--------Kemas kini semula---------
Selepas ujian lanjut, kami mendapati bahawa dalam blok lokasi, jika tiada bendera pecah selepas menulis semula atau terdapat bendera terakhir selepas menulis semula, maka blok lokasi akan dipilih semula selepas menulis semula Jika anda masih memasukkan blok lokasi asal , maka pembolehubah ($ document_root, $fastcgi_script_name...) tidak akan berubah, tetapi jika ia diubah hala ke blok lokasi lain selepas menulis semula, pembolehubah akan berubah pada masa ini
Jika anda tidak menambah rehat, ia tidak akan berhenti dan terus mencari peraturan tulis semula seterusnya.
Tulis semula semua permintaan ke 404.html Jika 404.html tidak wujud, ia akan menjadi gelung tak terhingga.