Rumah  >  Soal Jawab  >  teks badan

Perbezaan antara nginx menulis semula tanpa rehat dan dengan rehat

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

習慣沉默習慣沉默2714 hari yang lalu611

membalas semua(1)saya akan balas

  • 習慣沉默

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

    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.

    balas
    0
  • Batalbalas