Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

王林
Lepaskan: 2023-05-26 21:47:31
ke hadapan
3820 orang telah melayarinya

Konfigurasi asas 404 halaman
Ralat 404 ialah ralat yang mudah berlaku apabila mengakses laman web www. Mesej ralat yang paling biasa: 404 tidak dijumpai. Tetapan halaman ralat 404 mempunyai kesan yang besar pada SEO tapak web Tetapan yang tidak betul, seperti ubah hala terus ke halaman utama, dsb., akan diturunkan dan dipetik oleh enjin carian. Tujuan halaman 404 adalah untuk memberitahu pengguna bahawa halaman yang anda minta tidak wujud, dan untuk membimbing pengguna untuk menyemak imbas halaman lain tapak web dan bukannya menutup tetingkap dan pergi. Enjin carian menggunakan kod status http untuk mengenal pasti status halaman web. Apabila enjin carian memperoleh pautan yang tidak baik, tapak web harus mengembalikan kod status 404 untuk memberitahu enjin carian untuk meninggalkan pengindeksan pautan. Jika kod status 200 atau 302 dikembalikan, enjin carian akan mengindeks pautan itu, menyebabkan sejumlah besar pautan berbeza menghala ke kandungan halaman web yang sama. Akibatnya, enjin carian telah mengurangkan kepercayaan mereka terhadap laman web dengan ketara.
Berikut ialah tutorial tentang menyediakan halaman ralat nginx 404 dengan lnmp:
1

vi /usr/local/nginx/conf/nginx.conf
Salin selepas log masuk

Edit fail konfigurasi nginx dan tambah kod berikut dalam bahagian http:
<🎜. >

fastcgi_intercept_errors on;
Salin selepas log masuk

Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

2 Edit fail konfigurasi tapak web, contohnya tapak ini:

vi /usr/local/nginx/conf/vhost/onelone.com.conf
Salin selepas log masuk

, tambah kod berikut di bahagian pelayan:


error_page 404 = /404.html;
Salin selepas log masuk
Salin selepas log masuk

Nota: Sesetengah netizen menguji pautan atas Kod tersebut perlu mengalih keluar tanda sama untuk mengembalikan status 404 yang betul, jadi pelajar diminta untuk menguji sama ada mereka mahu mengalih keluar tanda sama.


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

3. Uji sama ada fail konfigurasi adalah betul:

/usr/local/nginx/sbin/nginx -t
Salin selepas log masuk

, kembalikan kod berikut untuk lulus:


the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
Salin selepas log masuk

4 , mulakan semula lnmp untuk berkuat kuasa: /root/lnmp mulakan semula.


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

5. Nota tentang membuat 404 halaman ralat:

(1) Jangan ubah hala 404 ralat ke halaman utama tapak web, jika tidak, ia boleh menyebabkan laman utama akan hilang dalam carian Enjin diturunkan atau hilang.
(2) Jangan gunakan URL mutlak Jika anda menggunakan URL mutlak, kod status yang dikembalikan ialah 302+200, yang akan menghasilkan sejumlah besar halaman web pendua.
(3) Tetapan 404 halaman selesai, pastikan anda menyemak sama ada ia betul. Maklumat pengepala http yang dikembalikan mestilah status 404. Ini boleh disemak melalui alat pemeriksaan maklumat pengepala pelayan.
(4) Jangan melompat ke halaman 404 secara automatik, biarkan pengguna memutuskan ke mana hendak pergi.
Halaman 404 tersuai mestilah lebih besar daripada 512 bait, jika tidak, halaman lalai 404 iaitu boleh muncul.

Halaman 404 yang diminta oleh ajax kembali
Beberapa hari yang lalu, seorang rakan mempunyai masalah dengan programnya tetapi tidak dapat mencari masalah itu tidak kira bagaimana dia menyemak, jadi dia meminta saya untuk membantunya. Malah, ia adalah ajax meminta banyak templat, dan kemudian menulis templat ke halaman. Kuncinya ialah semua halaman yang diminta mengembalikan 200 kod status biasa Pada dasarnya, tidak ada masalah, walaupun beberapa permintaan mengembalikan kod status 200, kod status yang dikembalikan ialah 200. Pelayan web adalah nginx dan secara langsung memberitahu saya bahawa mereka sepatutnya mengkonfigurasi halaman ralat 404 nginx Walaupun permintaan untuk sumber yang tidak wujud boleh berjaya mengembalikan halaman 404, kod status pulangan sememangnya 200.

404.html
this is 404 page.
Salin selepas log masuk

Minta halaman yang tidak wujud:


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

kod ajax:


$.ajax({
 url: "does_not_exist.html",
 success : function(response, textstatus){
 console.log(textstatus+":"+response);
 },
 error : function(xmlhttprequest, textstatus, errorthrown){
 console.log([xmlhttprequest, textstatus, errorthrown].join(","));
 }
});
Salin selepas log masuk

Pelaksanaan hasil :


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

Masukkan objek untuk melihat butiran:


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

Halaman yang diminta tidak ditemui dan Maklumat halaman 404 dikembalikan, tetapi kod status masih 200, jadi jquery tidak menggunakan panggilan balik fungsi ralat tetapi secara langsung menggunakan panggilan balik kejayaan.

Sepatutnya ada masalah dengan konfigurasi, jadi saya membuka nginx.conf dan mendapati konfigurasi mereka ditulis seperti ini:

error_page 404 = /404.html;
Salin selepas log masuk
Salin selepas log masuk

Jadi saya menyemak dokumentasi laman web rasmi dan menulis semula ungkapan di atas sebagai:


error_page 404 /404.html;
Salin selepas log masuk

Kemudian mulakan semula


d:\nginx-1.5.11>nginx.exe -s reload
Salin selepas log masuk

Cuba lagi:


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

Cuba lagi:


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

Adalah jelas bahawa berbanding dengan yang sebelumnya yang mengembalikan kod status 404 merah, apa yang keluar daripada console.log di bawah ialah


[object object],error,not found
Salin selepas log masuk
dan kemudian klik Masukkan objek dan lihat:


Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404

nilai status ialah 404. Ia bukan sahaja boleh mengembalikan halaman 404, tetapi juga mengembalikan kod status 404 supaya permintaan ajax boleh menilai status permintaan halaman berdasarkan kod status dan mengendalikan ralat.

Berikut adalah tambahan daripada netizen lain:

1. Sebab mengapa halaman ralat nginx dipaparkan dengan elegan?
Apabila kami melawat tapak web, atas sebab-sebab khas, ralat seperti 403, 404, 503 sering muncul, yang sangat mempengaruhi pengalaman akses pengguna, jadi adalah perlu bagi kami untuk membuat paparan elegan halaman ralat untuk menambah baik pengalaman menyemak imbas pengguna.

2. Bagaimana untuk menentukan halaman yang dipaparkan dengan elegan di bawah nginx?
Mari kita ambil ralat 404 sebagai contoh Langkah-langkah khusus adalah seperti berikut:
1 Buat halaman 404.html anda sendiri dan letakkan di bawah direktori tapak; fail dalam modul http Tambah fastcgi_intercept_errors pada;
3 Tukar fail konfigurasi nginx.conf dan tambah: error_page 404 /404.html; atau error_page 404 =http://www.hulala.com/404.html;
4. Semak sintaks /nginx/sbin/nginx -t selepas perubahan, dan mulakan semula nginx
Sekarang, paparan elegan halaman ralat 404 telah dikonfigurasikan.

Gunakan inferens daripada satu contoh: 502, 403 dan ralat lain boleh dikonfigurasikan dengan cara yang sama.

error_page 500 502 503 504 /50x.html;
error_page 403 /403.html;
Nota:
Dua prasyarat untuk pengalihan ralat untuk berkuat kuasa dalam nginx ialah: fastcgi_page_intercept_ pilihan ditetapkan dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi halaman 404 dalam Nginx dan permintaan AJAX untuk mengembalikan halaman 404. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!