Ralat PHP 404: Memahami Jurang Batu Terakhir
Walaupun mengikut kod yang kelihatan betul, mengapa aplikasi PHP anda gagal memaparkan 404 ralat dan sebaliknya membentangkan halaman kosong?
Kod yang disediakan memastikan bahawa pengepala ralat 404 dihantar. Walau bagaimanapun, ia gagal mengambil kira perbezaan penting dalam cara respons dikendalikan oleh pelayan web berbanding PHP.
Pengendalian Pelayan Web
Biasanya, pelayan web memproses permintaan dan, jika ia tidak dapat mencari fail yang diminta di URI, ia menghantar pengepala 404 dan memaparkan ralat 404 tersuai halaman.
Pemintasan PHP
Apabila pelayan web mewakilkan permintaan ke halaman PHP, skrip PHP bertanggungjawab untuk menjana kedua-dua pengepala dan badan tindak balas. Ini bermakna walaupun pengepala 404 dihantar oleh PHP, pelayan web telah pun komited untuk memaparkan halaman PHP dan bukannya halaman 404 standard.
Menyerahkan kepada PHP
Hasilnya, skrip PHP dengan berkesan mengambil alih tanggungjawab mengendalikan ralat 404, yang membentangkan dua cabaran:
Penyelesaian
Untuk menyelesaikan isu tersebut, anda mesti mengendalikan kes 404 secara eksplisit dan mengeluarkan mesej ralat sendiri. Kod berikut memberikan contoh:
if (strstr($_SERVER['REQUEST_URI'],'index.php')) { header('HTTP/1.0 404 Not Found'); echo '<h1>404 Not Found</h1>'; exit; }
Atas ialah kandungan terperinci Mengapa Apl PHP Saya Menunjukkan Halaman Kosong Daripada Ralat 404?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!