Melaksanakan Halaman Ralat Tersuai 404 Menggunakan Pakej Net/HTTP
Apabila pengguna menavigasi ke URL yang tidak wujud, tingkah laku lalai dalam pelayan web adalah untuk memaparkan mesej generik "Halaman 404 Tidak Ditemui". Untuk meningkatkan pengalaman pengguna, anda mungkin ingin membuat halaman 404 tersuai yang menyediakan lebih banyak maklumat atau mengubah hala pengguna ke destinasi yang berkaitan.
Dalam senario ini, dengan kod ringkas yang disediakan:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", homeHandler) http.HandleFunc("/smth/", smthHandler) http.ListenAndServe(":12345", nil) } func homeHandler(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { errorHandler(w, r, http.StatusNotFound) return } fmt.Fprint(w, "welcome home") } func smthHandler(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/smth/" { errorHandler(w, r, http.StatusNotFound) return } fmt.Fprint(w, "welcome smth") } func errorHandler(w http.ResponseWriter, r *http.Request, status int) { w.WriteHeader(status) if status == http.StatusNotFound { fmt.Fprint(w, "custom 404") } }
Fungsi errorHandler, yang digunakan untuk mengendalikan semua ralat HTTP, boleh disesuaikan untuk memaparkan halaman ralat 404 tersuai dengan mengembalikan http.StatusNotFound kod ralat dan menulis kandungan yang dikehendaki pada ResponseWriter.
Dalam contoh ini, fungsi errorHandler mengembalikan mesej tersuai "custom 404" apabila status ralat 404 dikesan. Ini membolehkan anda menggantikan mesej lalai "Halaman 404 Tidak Ditemui" dengan halaman yang lebih mesra pengguna dan bermaklumat.
Selain itu, fungsi pengendali ralat boleh dilanjutkan untuk menangkap ralat HTTP lain dan melaksanakan pengendalian ralat tersuai, seperti sebagai ralat pengelogan, menghantar pemberitahuan e-mel atau mengubah hala pengguna ke halaman ralat tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Halaman Ralat 404 Tersuai dalam Go menggunakan Pakej `net/http`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!