Penyebab Utama Internal Server Error pada SHTML
Internal Server Error (HTTP 500) pada file dengan ekstensi .shtml biasanya terjadi karena kesalahan konfigurasi pada server Apache, khususnya terkait modul mod_include atau aturan yang salah di dalam file .htaccess. SHTML adalah file HTML yang menyertakan Server Side Includes (SSI). Jika server tidak diizinkan mengeksekusi perintah SSI atau terdapat sintaks yang rusak, server akan menghentikan proses dan memicu error 500.
Langkah Perbaikan Teknis
Ikuti urutan langkah berikut untuk mendiagnosis dan memperbaiki masalah tersebut:
| Langkah | Tindakan | Tujuan |
|---|---|---|
| 1 | Cek Error Log | Melihat pesan spesifik di file error_log server. |
| 2 | Verifikasi .htaccess | Menghapus atau memperbaiki baris perintah yang salah. |
| 3 | Periksa Izin File | Memastikan permission file tidak lebih dari 644. |
| 4 | Aktifkan SSI | Memastikan modul mod_include aktif di server. |
1. Memperbaiki File .htaccess
Seringkali, error disebabkan oleh perintah yang tidak didukung di .htaccess. Coba ganti isi file tersebut dengan kode standar berikut untuk mengaktifkan SSI:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtmlJika setelah menambahkan kode ini error tetap muncul, kemungkinan besar server Anda tidak mengizinkan penggunaan Options di .htaccess. Hubungi penyedia hosting Anda untuk menanyakan apakah AllowOverride Options diaktifkan.
2. Memeriksa Izin Akses (File Permissions)
File SHTML yang memiliki izin akses terlalu longgar (misalnya 777) sering kali ditolak oleh server demi alasan keamanan. Gunakan FTP client atau File Manager di cPanel untuk mengubah izin file menjadi 644.
3. Validasi Sintaks SSI
Kesalahan penulisan tag SSI dapat menyebabkan server crash. Pastikan tag Anda mengikuti format yang benar:
<!--#include virtual="header.shtml" -->Pastikan file yang dipanggil (header.shtml) benar-benar ada di direktori yang ditentukan. Jika file tersebut tidak ditemukan, server mungkin akan melempar error 500.
4. Cek Error Log Server
Ini adalah cara paling akurat. Akses cPanel Anda, buka menu Errors atau gunakan SSH untuk melihat log terakhir:
tail -n 50 /var/log/apache2/error.logCari baris yang mengandung kata 'SSI' atau 'Options'. Pesan tersebut akan memberi tahu Anda baris mana yang menyebabkan kegagalan eksekusi.