Bagaimana cara memperbaiki kesalahan 404 di php?

Ini bisa sangat berguna jika Anda perlu menampilkan pesan 404 jika catatan database tertentu tidak ada

Dengan mengirimkan kode status HTTP 404 ke klien, kami dapat memberi tahu mesin telusur dan perayap lain bahwa sumber daya tidak ada

Untuk mengirim 404 ke klien, kita dapat menggunakan fungsi http_response_code PHP seperti itu

//Send 404 response to client.
http_response_code[404]
//Include custom 404.php message
include 'error/404.php';
//Kill the script.
exit;

Perhatikan bahwa fungsi ini hanya tersedia di PHP versi 5. 4 dan sesudahnya

Jika Anda menggunakan versi PHP yang lebih lama dari 5. 4, maka Anda harus menggunakan fungsi header sebagai gantinya

//Use header function to send a 404
header[$_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404];
//Include custom message.
include 'errors/404.php';
//End the script
exit;
_

Pada kode di atas, kita

  1. Kirim kode respons ke klien
  2. Kami menyertakan file PHP yang berisi kesalahan "404 Not Found" khusus kami. File ini tidak wajib, jadi silakan hapus jika Anda mau
  3. Kami kemudian menghentikan skrip PHP dengan memanggil pernyataan keluar

Jika Anda menjalankan salah satu contoh kode di atas dan memeriksa respons di alat pengembang browser Anda, Anda akan melihat sesuatu seperti ini

Request URL://localhost/test.php
Request Method:GET
Status Code:404 Not Found
Remote Address:[::1]:80
Referrer Policy:no-referrer-when-downgrade

Perhatikan segmen Kode Status dari respons HTTP server. Ini adalah tajuk 404

Kapan saya harus menggunakan ini?

Dalam kebanyakan kasus, server web Anda akan secara otomatis menangani kesalahan 404 jika sumber daya tidak ada

Namun, apa yang terjadi jika skrip Anda dinamis dan memilih data dari database Anda? . php?id=234 dan pengguna 234 tidak ada?

Pengguna file. php akan ada, jadi server web Anda akan mengirimkan kembali status "200 OK", terlepas dari apakah pengguna dengan ID 234 ada atau tidak

Dalam kasus seperti ini, kami mungkin perlu mengirim header 404 Not Found secara manual

Mengapa PHP tidak menampilkan pesan 404 yang sama dengan server web saya?

Anda mungkin memperhatikan bahwa server web Anda tidak menyajikan pesan kesalahan default "404 Not Found" ketika Anda mengirim header secara manual dengan PHP

Pesan default yang ditampilkan Apache setiap kali sumber daya tidak dapat ditemukan

Ini karena, sejauh menyangkut server web, file tersebut memang ada dan sudah melakukan tugasnya

Salah satu solusi untuk masalah ini adalah memastikan bahwa PHP dan server web Anda menampilkan pesan 404 yang sama persis

Misalnya, dengan Apache, Anda dapat menentukan jalur pesan error kustom menggunakan direktif ErrorDocument

Setiap situs web terkadang mengalami Error 404 yang membuat frustrasi. Tidak ditemukan. Dan jika Anda memiliki situs web sendiri, Anda mungkin ingin menyesuaikan halaman kesalahan ini. Syukurlah, itu tidak terlalu sulit untuk dilakukan. Halaman kesalahan Anda mungkin berupa ekstensi apa pun yang Anda inginkan. Biasanya, mereka ditulis dalam SHTML. Tetapi SHTML tidak terlalu dinamis dalam hal apa yang dapat dilakukan dengannya. Jadi saya pergi ke PHP untuk halaman kesalahan saya. Pengodeannya juga tidak sulit. Jadi mari kita mulai

Tambahkan TipAjukan PertanyaanKomentarUnduh

Langkah 1. Persyaratan

Jika Anda memiliki situs web, server selang Anda harus menginstal PHP. Jika tidak, tanyakan kepada admin server Anda apakah mereka akan berbaik hati untuk menginstalnya. Jika Anda hanya membuang-buang waktu, Anda memerlukan beberapa jenis emulator. Jika Anda menggunakan Windows, gunakan easyPHP untuk ini. Jika Anda menggunakan Linux dan dapat menyisihkan sumber dayanya, dapatkan. apache2 dan php [untuk Ubuntu, sudo apt-get install apache2 php]. Jika Anda menggunakan mac, saya tidak tahu apa yang dapat Anda gunakan

Setelah Anda memenuhi persyaratan ini, lanjutkan ke langkah berikutnya

Tambahkan TipAjukan PertanyaanKomentarUnduh

Langkah 2. . htaccess

Seperti yang dinyatakan pada halaman sampul, halaman kesalahan kustom Anda dapat memiliki ekstensi apa pun yang Anda inginkan. Tetapi Anda tidak dapat menggunakannya jika server Anda tidak diminta untuk menggunakannya. Di sinilah. htaccess masuk. . htaccess adalah file bernama, yah, ". htaccess". File ini dapat digunakan untuk mengonfigurasi situs Anda ke tingkat tertentu. Apa yang akan kita lakukan adalah melanjutkan dan mengarahkan kesalahan 404 ke 404. php [yang ironisnya belum ada]. Ini akan menjadi file tersembunyi [setiap file yang dimulai dengan titik adalah file tersembunyi]. Jadi pastikan Anda dapat melihat file tersembunyi. Dalam file ini, tulis kode berikut dan simpan

ErrorDocument 404 /404.php
Dan saat Anda melakukannya, jika Anda menginginkannya
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php #Don't re-add this line
ErrorDocument 500 /500.php
_

Tambahkan TipAjukan PertanyaanKomentarUnduh

Langkah 3. 404. php

Dan halaman kesalahan yang sebenarnya. Saya akan mengabaikan semua hal "mari ikuti standar" yang biasa saya lakukan. Alasan saya memilih PHP untuk halaman kesalahan adalah karena Anda dapat mengetahui sumber kesalahan sampai batas tertentu; . Ini dicapai dengan mem-parsing variabel server. Anda juga dapat menguraikan beberapa variabel server lainnya dan melihat dengan tepat apa yang dimasukkan ke dalam bilah alamat. Untuk ible ini, kami hanya akan mengambil halaman yang diminta dan perujuknya, jika ada

 does not exist, sorry.

Baris di atas akan memberi tahu pengunjung bahwa halaman yang mereka inginkan, bersama dengan jalur halaman [diawali dengan garis miring], tidak ada. Sangat membantu untuk memberi tahu halaman tertentu karena hyperlink yang diikuti, jika diikuti, mungkin tidak mencerminkan jalur halaman. Kode selanjutnya akan diambil jika ada perujuk dan siapa itu

_
Di situs saya, saya memberi tahu pengguna satu dari tiga hal yang harus dilakukan sesuai kode. Jika perujuk adalah situs saya, email saya dan beri tahu saya. Jika perujuk berada di situs lain, kirimkan email kepada mereka dan beri tahu mereka. Jika mereka mengetik secara acak di bilah alamat, berhentilah melakukannya

Bài mới nhất

Chủ Đề