Lewati ke isi

Website & Domain

Error 403 Forbidden, Penyebab dan Cara Mengatasinya

Error 403 Forbidden berarti server menolak akses. Kenali penyebabnya, dari izin file, .htaccess, file index hilang, sampai firewall, dan solusinya.

Terbit 5 menit baca

Jawaban singkat

Error 403 Forbidden berarti server memahami permintaan tetapi menolak memberikan akses. Penyebab paling umum adalah izin file atau folder yang salah, aturan penolakan di .htaccess, folder tanpa file index, blokir IP, atau firewall aplikasi web seperti ModSecurity.

Daftar isi
  1. Kenali dulu pola error-nya
  2. Izin file dan folder yang salah
  3. Aturan .htaccess yang menolak akses
  4. Folder tanpa file index
  5. Kenapa hanya sebagian pengunjung yang kena?
  6. Ringkasan

Kamu baru selesai mengunggah website, membuka alamatnya, dan yang muncul justru tulisan "403 Forbidden". Atau situs yang kemarin normal tiba-tiba menolak dibuka dari jaringan kantor, padahal dari ponsel lancar. Dua situasi ini terlihat berbeda, tapi kodenya sama: server menolak memberikan akses.

Menurut standar HTTP (RFC 9110), kode 403 berarti server memahami permintaan, tetapi menolak memenuhinya. Berbeda dengan 404 yang berarti halaman tidak ditemukan, pada 403 halamannya mungkin ada, hanya saja kamu tidak diizinkan membukanya. Penyebabnya hampir selalu ada di pengaturan server atau file situs, bukan di browser pengunjung.

Kenali dulu pola error-nya

Pola kemunculan error memberi petunjuk besar tentang penyebabnya. Error di seluruh situs biasanya mengarah ke izin folder utama atau aturan global di .htaccess. Error hanya di satu folder mengarah ke file index yang hilang atau aturan khusus folder itu. Error yang hanya dialami sebagian pengunjung hampir pasti berasal dari blokir IP atau firewall.

PolaPenyebab paling mungkinCara memeriksa
Seluruh situs 403 setelah uploadIzin folder atau file salahCek izin di File Manager
Satu folder 403, folder lain normalTidak ada file indexCek ada tidaknya index.php atau index.html
403 setelah memasang plugin keamananAturan baru di .htaccessBandingkan isi .htaccess dengan sebelumnya
Hanya IP tertentu yang kenaIP Blocker, firewall, atau WAF CDNCoba dari jaringan lain, cek daftar blokir
403 saat kirim formulir atau simpan posModSecurityCari "ModSecurity" di menu Errors
Gambar 403 saat dibuka dari situs lainHotlink protectionCek pengaturan Hotlink Protection

Cara tercepat memastikan penyebabnya adalah membaca log. Di cPanel, buka Metrics > Errors dan cari baris dengan waktu yang sama dengan saat kamu membuka halaman. Panduannya ada di cara membaca error log di cPanel.

Izin file dan folder yang salah

Web server butuh izin baca untuk file dan izin masuk untuk folder. Di kebanyakan hosting Linux, pola yang umum dipakai adalah 755 untuk folder dan 644 untuk file. Izin seperti 700 atau 600 pada folder public_html atau file di dalamnya bisa membuat server menolak membacanya, hasilnya 403.

Masalah ini sering terjadi setelah mengunggah file dari arsip zip atau memakai klien FTP yang membawa izin dari komputer lokal. Di File Manager cPanel, pilih file atau folder, klik Permissions, lalu atur angkanya. Jangan memakai 777 sebagai jalan pintas. Izin itu membuat siapa pun di server bisa menulis ke file, dan banyak server menolak menjalankan skrip PHP dengan izin seperti itu. Penjelasan arti angka izin ada di memahami permission Linux chmod dan chown.

Pemilik file juga berpengaruh. File yang dipindahkan dari akun lain atau diekstrak oleh root di VPS bisa dimiliki user yang salah, sehingga web server tidak boleh membacanya. Di VPS, periksa dengan ls -l lalu betulkan dengan chown.

Aturan .htaccess yang menolak akses

File .htaccess bisa berisi aturan yang menolak akses, misalnya:

Require all denied

atau aturan lama gaya Apache 2.2:

Order deny,allow
Deny from all

Aturan seperti ini wajar di folder yang memang harus tertutup, tapi jadi masalah bila tertulis di folder utama. Plugin keamanan, plugin cache, atau potongan kode dari tutorial sering menambahkan aturan tanpa kamu sadari. Log Apache untuk kasus ini biasanya berisi AH01630: client denied by server configuration.

Cara mengujinya: unduh dulu salinan .htaccess, lalu ganti namanya menjadi .htaccess-lama. Kalau situs kembali terbuka, masalahnya ada di file itu. Untuk WordPress, buat ulang .htaccess bawaan dengan membuka Settings > Permalinks lalu klik Save, kemudian tambahkan aturan lain satu per satu.

Perhatikan juga file .htaccess di folder induk. Aturan Apache berlaku turun ke subfolder, jadi .htaccess di public_html bisa memblokir aplikasi di public_html/toko, meski folder toko sendiri tidak punya aturan penolakan. Kalau ragu, periksa setiap .htaccess dari folder yang error naik sampai ke folder utama.

Folder tanpa file index

Saat kamu membuka alamat folder, server mencari file index seperti index.php atau index.html. Kalau tidak ada, dan fitur daftar isi folder dimatikan (biasanya memang dimatikan demi keamanan), server menjawab 403. Log mencatatnya sebagai AH01276: Cannot serve directory.

Ini sering dialami saat file website terunggah ke subfolder, misalnya public_html/website-saya/, padahal domain mengarah ke public_html. Pindahkan isi folder ke lokasi yang benar. Langkah upload yang tepat dijelaskan di cara upload website ke hosting lewat File Manager.

Kenapa hanya sebagian pengunjung yang kena?

Kalau situs terbuka dari ponsel tapi 403 dari jaringan kantor, kemungkinan besar IP kantor diblokir. Sumbernya bisa beberapa:

  • IP Blocker di cPanel, yang mungkin pernah diisi rentang IP terlalu luas.
  • Firewall server yang memblokir IP setelah beberapa kali gagal login, misalnya karena ada perangkat kantor yang terus mencoba password lama di aplikasi email.
  • Firewall aplikasi web seperti ModSecurity, yang memblokir permintaan yang mirip serangan. Formulir berisi kode atau kata tertentu kadang salah terdeteksi.
  • Aturan keamanan CDN, bila situs memakai layanan seperti Cloudflare. Halaman blokir dari CDN biasanya punya tampilan dan kode referensi sendiri.

Untuk blokir firewall server dan ModSecurity, kamu biasanya butuh bantuan penyedia hosting. Kirim alamat IP publikmu, waktu kejadian, dan URL yang ditolak, supaya mereka bisa mencari catatan blokirnya. Jangan meminta ModSecurity dimatikan untuk seluruh situs. Lebih aman bila hanya aturan yang salah blokir yang dikecualikan.

Hotlink protection juga bisa memberi 403 pada gambar yang dipanggil dari domain lain, termasuk domain baru milikmu sendiri setelah pindah alamat. Tambahkan domain itu ke daftar yang diizinkan di menu Hotlink Protection.

Ringkasan

Error 403 berarti server sengaja menolak akses, jadi jawabannya ada di aturan yang dipasang, bukan di koneksi pengunjung. Mulailah dari log untuk melihat alasan penolakan, lalu periksa izin file, isi .htaccess, keberadaan file index, dan daftar blokir IP secara berurutan. Ubah satu hal setiap kali dan uji lagi, supaya kamu tahu persis perubahan mana yang memperbaiki masalah.

Sumber & referensi

Baca juga