Yang dimaksud dengan 403 dan 404 adalah kode response http yang kita terima saat request atau membuka halaman web
Ada banyak kode response http, tapi disini kita bahas kode 403 dan 404
Kode 403 berarti request atau akses kita forbidden, tidak di ijinkan. Misalnya kita ingin mengakses suatu halaman yang menyimpan beberapa foto, yaitu https://mysites.com/images/, halaman tersebut memang ada di server mysites, akan tetapi kita tidak diperbolehkan mengaksesnya, oleh karena itu kita mendapat response kode 403, forbidden, pada browser kita
Sedangkan kode 404 berarti, request atau halaman tidak ada dalam server. Misalnya kita mengakses https://mysites.com/awewewaeawvd1/ dimana tentu saja halaman itu tidak ada dalam server mysites
Jadi perbedaannya kalo 403 berarti halaman itu memang ada sedangkan 404 artinya halaman tidak ada
Nah, sebagai pemilik server tentu kita ingin memproteksi halaman web kita, salah satunya adalah mengelabui halaman yang forbidden menjadi halaman tidak ditemukan, agar user mengira bahwa halaman tersebut tidak ada
Hal itu bisa dilakukan dengan beberapa cara, salah satunya dengan menggunakan .htaccess
Caranya :
- Membuat halaman tampilan error yang diletakkan pada directory public, misalnya 404.php pada directory errordoc (jangan membuat halaman berbentuk html, akan tetapi berbentuk php). Berikut contoh file 404.php
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
2. Setting pada file .htaccess untuk menampilkan file 404.php saat response 403 dan 404
Untuk itu buka file .htaccess dalam folder public anda, jika tidak ada, buatlah file baru dalam folder public anda dengan nama .htaccess
Lalu isikan perintah berikut
Options -Indexes
ErrorDocument 403 /errordoc/404.php
ErrorDocument 404 /errordoc/404.php
Ketika kedua langkah tersebut selesai kita lakukan, kita bisa mencobanya dengan mengakses halaman yang forbidden, misalnya https://serveranda.com/images atau https://serveranda.com/admin
Saat anda mengakses halaman tersebut, maka yang tampil adalah halaman 404.php yang kita buat dalam folder errordoc tadi. Tampilan yang sama akan muncul saat kita mengakses halaman yang tidak ada dalam server kita, karena kita juga redirecting 404 ke 404.php dalam .htaccess
Memang 404.php akan ditampilkan saat response kode 403, akan tetapi jika kita lihat status request dan response (lewat developer tools google chrome) akan terlihat response code masih 403
Untuk membuatnya menjadi code 404, kita perlu mengedit file 404.php tadi dengan perintah php, seperti berikut
<?php http_response_code(404);?>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
Nah sekarang apabila kita mengakses halaman yang forbidden, maka yang kita dapat adalah halaman not found dan response not found juga yaitu 404
Anda dapat redirect juga beberapa kode response yang lainnya dengan cara yang sama
Semoga bermanfaat