Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Apl PHP Saya Menunjukkan Halaman Kosong Daripada Ralat 404?

Mengapa Apl PHP Saya Menunjukkan Halaman Kosong Daripada Ralat 404?

Susan Sarandon
Susan Sarandonasal
2024-11-12 03:33:02905semak imbas

Why Does My PHP App Show a Blank Page Instead of a 404 Error?

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:

  • Halaman 404 Hilang: Skrip PHP tidak mempunyai konfigurasi yang diperlukan untuk mengubah hala ke halaman ralat 404 tersuai.
  • Gangguan Output: Sebarang output yang dihasilkan oleh skrip PHP akan mengatasi kandungan 404 halaman, menyebabkan halaman kosong dipaparkan bukannya mesej ralat.

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!

Kenyataan:
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