Gejala dan Penyebab Error 403 Forbidden pada WordPress
Pesan kesalahan 403 Forbidden atau Access Denied pada server web WordPress menandakan bahwa server menerima permintaan dari browser, namun menolak memberikan hak akses ke direktori atau file yang diminta. Eror ini dapat terjadi pada seluruh halaman situs, halaman login wp-login.php, dasbor wp-admin, maupun saat mengunggah file multimedia.
Berdasarkan investigasi teknis dari tim engineer AN Media Jember, ada 5 penyebab utama murni teknis di tingkat server web dan aplikasi:
- File
.htaccessRusak / Konfigurasi Corrupt: Adanya directive rewrite rule yang salah atau baris kode yang mengalami sintaks eror pada server Apache / LiteSpeed. - Hak Akses File & Folder Tidak Sesuai (Permission Mismatch): Permission folder yang berubah menjadi lebih ketat dari
755atau file lebih ketat dari644. - Konflik Plugin Keamanan / Firewall (WAF): Plugin seperti Wordfence, iThemes Security, atau modul server ModSecurity yang memblokir alamat IP atau request tertentu secara salah (false positive).
- Konfigurasi Nginx Server Block Tidak Tepat: Direktif
try_filesatau pembacaan index fileindex.phpyang hilang pada Nginx web server. - Situs Terkunci Akibat Penyusupan Script / Malware: Script jahat yang mengubah hak akses file atau menyisipkan aturan pembatasan akses pada direktori
wp-includesatauwp-content.
“Mengatasi error 403 Forbidden pada WordPress membutuhkan isolasi masalah yang terstruktur: mulai dari validasi file .htaccess, izin direktori, hingga modul keamanan server web.” — Tim Tech & DevOps AN Media Jember
Langkah 1: Backup dan Regenerasi File .htaccess Standar
Penyebab paling sering dari 403 Forbidden pada server Apache atau LiteSpeed adalah file .htaccess yang corrupt. Langkah pertamanya adalah membuat backup dan menggantinya dengan konfigurasi standar WordPress.
Masuk melalui SSH atau Terminal cPanel, lalu jalankan perintah berikut:
# Masuk ke root direktori WordPress
cd /home/username/public_html
# Rename file .htaccess lama sebagai backup
mv .htaccess .htaccess_backup_$(date +%F)
# Buat file .htaccess baru
nano .htaccess
Tempelkan konfigurasi standar WordPress di bawah ini:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Simpan file dan uji kembali akses ke website Anda.
Langkah 2: Memperbaiki Permission Direktori dan File via Terminal / SSH
Hak akses (permission) yang salah dapat menyebabkan server menolak akses HTTP request. Standar keamanan WordPress mensyaratkan direktori berizin 755 dan file berizin 644, serta wp-config.php berizin 600 atau 640.
Eksekusi perintah find berikut pada terminal server Anda:
# Ubah izin seluruh direktori menjadi 755
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
# Ubah izin seluruh file menjadi 644
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
# Amankan file konfigurasi sensitif wp-config.php
chmod 600 wp-config.php
Langkah 3: Nonaktifkan Seluruh Plugin untuk Isolasi Konflik WAF
Jika error 403 muncul setelah menginstall atau memperbarui plugin keamanan, kemungkinan besar ada aturan firewall yang memblokir sesi admin Anda. Anda dapat mendisosiasi seluruh plugin tanpa harus masuk ke dasbor wp-admin.
Menggunakan WP-CLI (WordPress Command Line Interface):
wp plugin deactivate --all --path=/path/to/wordpress
Atau secara manual merename folder plugin via terminal:
cd /path/to/wordpress/wp-content
mv plugins plugins_deactivated
mkdir plugins
Coba akses website kembali. Jika 403 hilang, kembalikan nama folder plugin dan aktifkan plugin satu per satu untuk menemukan plugin mana yang memicu eror.
Langkah 4: Periksa Konfigurasi Nginx Server Block (Pengguna Nginx)
Bagi Anda yang menggunakan web server Nginx, error 403 Forbidden sering terjadi jika direktif index.php tidak terdaftar pada baris index atau perintah try_files tidak mengarahkan permintaan non-file ke index.php.
Buka file konfigurasi blok Nginx Anda (misalnya /etc/nginx/sites-available/domain.com):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Uji sintaks Nginx dan restart service:
sudo nginx -t
sudo systemctl restart nginx
Langkah 5: Audit Log ModSecurity dan Rule Whitelisting Server
Jika server Anda menggunakan ModSecurity (Web Application Firewall bawaan cPanel/WHM atau Nginx), aturan keamanan tertentu (seperti SecRule 949110 / SQLi false positive) dapat secara otomatis memberikan respons HTTP status 403.
Cek log kesalahan web server:
# Untuk Nginx / Apache di Linux
tail -f -n 50 /var/log/nginx/error.log
# Atau untuk Apache / cPanel
tail -f -n 50 /var/log/apache2/error_log
Jika ditemukan log ModSecurity Access denied with code 403 yang dipicu oleh Rule ID 123456, tambahkan pengecualian ID tersebut pada file konfigurasi ModSecurity atau melalui fitur ModSecurity di cPanel.
Rangkuman Checklist Pemecahan Masalah Error 403 WordPress
- Regenerasi file
.htaccesske versi standar WordPress. - Pastikan permission folder (755) & file (644) sudah tepat.
- Deaktivasi plugin via WP-CLI atau rename folder
wp-content/plugins. - Pastikan
try_files $uri $uri/ /index.php?$args;terpasang di Nginx. - Periksa log ModSecurity / Cloudflare WAF untuk membebaskan IP/rule false positive.
Kesimpulan & Layanan Maintenance Server AN Media
Menangani eror 403 Forbidden & Access Denied pada WordPress secara tepat akan mengembalikan performa situs Anda tanpa mengorbankan sistem keamanan server. Mengikuti urutan isolasi di atas memastikan Anda memperbaiki akar masalah (root cause) tanpa melakukan coba-coba yang berisiko merusak database atau file core WordPress.
Apabila Anda memerlukan bantuan perbaikan server, optimasi keamanan website, atau Jasa Pembuatan & Maintenance Website WordPress / Laravel Profesional di Jember, tim engineer AN Media siap membantu Anda 24/7. Hubungi kami untuk konsultasi teknis!