Mengatasi 406 Not Acceptable pada Apache
Tampaknya akhir – akhir ini saya lebih melakukan troubleshooting daripada mencoba hal – hal baru. Hehe. 🙂 Kali ini masalahnya ada pada instalasi Drupal 8 untuk registrasi akun baru pada stack LAMP (Linux, Apache, MySQL, PHP). Yang malah muncul halaman putih ditemani pesan error:
Not Acceptable!
An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.
Nama lain dari pesan kesalahan ini adalah error HTTP 406 Not Acceptable
. Saya jelaskan dulu maksudnya, jadi browser saat meminta konten ke server akan memberikan informasi dalam headernya (Accept
) yang berisi tipe konten yang diterima sebagai balasan requestnya. Nah… kalau pada server tidak bisa memberikan apa yang diminta maka yang muncul adalah hal diatas. Dan… tampaknya mod_security
juga memiliki peran disini.
Solusinya? Karena disebabkan proteksi dari ModSecurity maka kita bisa menonaktifkannya hanya untuk nama domain anda. Yang paling mudah dan juga bisa diterapkan pada shared hosting adalah dengan mengedit file .htaccess
dan menambahkan kode berikut:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Misal setelah anda menggunakan metode diatas gagal maka anda perlu membuat ijin akses bahwa setting yang ada dalam htaccess boleh membajak setting Apachenya. Ini diletakkan dalam konfigurasi virtual hosting, jadi minimal VPS dan kalau anda memakai shared hosting minta tolong ke supportnya saja:
<Directory "/var/www/nama_domain.com">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Lokasi konfigurasi virtual host tergantung distro (CentOS, Debian, Ubuntu) dan software Apache yang anda install, tapi biasanya diletakkan dalam direktori atau file ini:
/etc/apache2/sites-available/nama_domain.com
/etc/apache/sites-available/nama_domain.com
/etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
Salah satu saja ya, kalau sudah ketemu yang lainnya abaikan saja. Belum tentu cocok dengan struktur web server anda.