Kesalahan 405 Method Not Allowed adalah kode status HTTP yang menunjukkan bahwa server web mengenali permintaan dari browser atau klien, namun metode HTTP yang digunakan (seperti POST, GET, PUT, atau DELETE) dinonaktifkan atau tidak diizinkan untuk resource tersebut. Masalah ini sering kali muncul saat mengonfigurasi ulang server, memperbarui aplikasi web, atau melakukan pengujian API.
Penyebab utama dari galat ini melibatkan pembatasan aturan pada file konfigurasi server (seperti .htaccess pada Apache atau blok server Nginx), kesalahan pengkodean pada skrip aplikasi, atau pembatasan dari sisi direktori penyimpanan file. Untuk memperbaikinya secara tuntas, mari simak matriks identifikasi dan langkah-langkah teknis di bawah ini.
Matriks Identifikasi Penyebab Error 405
| Penyebab Umum | Lokasi Pemeriksaan | Tindakan Perbaikan |
|---|---|---|
| Salah konfigurasi file .htaccess | Direktori root website (Apache) | Periksa aturan RewriteRule dan hapus aturan yang memblokir metode HTTP. |
| Batasan rute pada aplikasi web | Framework backend (Laravel, Express, dll) | Pastikan method router (GET/POST) sesuai dengan permintaan klien. |
| Izin file dan direktori salah | Sistem file server (chmod/chown) | Kembalikan izin file ke 644 dan folder ke 755. |
Langkah-Langkah Teknis Mengatasi Error 405
1. Periksa File Konfigurasi .htaccess (Apache)
Jika Anda menggunakan server web Apache, file .htaccess yang terletak di direktori utama situs sering kali menjadi sumber masalah. Aturan pengalihan (redirect) yang keliru dapat mengubah metode permintaan POST menjadi GET, atau sebaliknya, sehingga memicu respons 405.
# Contoh aturan .htaccess standar yang aman
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2. Verifikasi Routing pada Skrip Backend
Bagi pengembang yang membangun aplikasi kustom atau menggunakan framework seperti Laravel, Express, atau Django, pastikan endpoint URL telah mendefinisikan metode HTTP yang tepat. Sebagai contoh, mengirimkan data form menggunakan metode POST ke sebuah URL yang hanya mendaftarkan rute GET akan menghasilkan galat 405.
3. Cek Log Server untuk Detail Error
Selalu periksa catatan log server untuk melihat jejak permintaan secara spesifik. Pada lingkungan Apache, Anda dapat memantau file error log menggunakan perintah terminal:
tail -f /var/log/apache2/error.log
Perintah di atas memungkinkan Anda melihat aktivitas kesalahan secara real-time saat melakukan pengujian ulang pada browser atau klien API.
Tips Pencegahan ke Depan
Selalu lakukan pengujian pada lingkungan staging (lokal) sebelum menerapkan pembaruan konfigurasi server atau skrip kode ke server produksi. Pastikan modul server yang dibutuhkan seperti mod_rewrite aktif dan konfigurasi izin akses file berada dalam status standar keamanan web.