HTTP Error 500 Internal Server Error saat mengakses file dengan ekstensi .shtml (Server Side Includes) umumnya disebabkan oleh kesalahan konfigurasi pada file .htaccess, izin file atau direktori yang terlalu longgar, atau direktif SSI yang tidak valid di dalam server web Apache. Masalah ini menghentikan proses eksekusi server dalam memuat halaman dinamis berbasis SSI.
Untuk mengatasi error ini secara tuntas, Anda perlu melakukan penelusuran sistematis mulai dari pemeriksaan log server hingga penyesuaian hak akses file. Berikut adalah tabel ringkasan penyebab utama dan solusi cepat untuk mengatasi error 500 pada file SHTML.
| Penyebab Utama | Gejala / Indikasi | Solusi Teknis |
|---|---|---|
| Kesalahan .htaccess | Error muncul setelah mengubah atau membuat file .htaccess. | Nonaktifkan sementara atau perbaiki sintaks modul SSI. |
| Izin File (Permissions) Salah | File SHTML atau direktori memiliki akses 777. | Ubah izin file ke 644 dan direktori ke 755. |
| Modul SSI Tidak Aktif | Server tidak mengenali perintah #include. |
Aktifkan mod_include pada konfigurasi Apache. |
Langkah-Langkah Perbaikan Teknis
1. Periksa Error Log Server
Langkah pertama dan paling akurat adalah melihat catatan kesalahan (error log) pada control panel hosting Anda (cPanel, DirectAdmin, atau VPS via SSH). Log ini akan menunjukkan baris kode atau konfigurasi spesifik yang memicu kegagalan server.
Lokasi umum error log di server Linux:
/usr/local/apache/logs/error_log
/var/log/apache2/error.log
/home/username/public_html/error_log
2. Koreksi Konfigurasi File .htaccess
File .htaccess yang salah dalam menuliskan direktif handler atau options sering kali memicu Error 500. Pastikan konfigurasi untuk mengaktifkan SHTML di dalam file .htaccess ditulis dengan benar seperti contoh berikut:
AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes
Jika setelah menambahkan baris tersebut terjadi error 500, kemungkinan server Anda tidak mengizinkan penggunaan Options +Includes di tingkat direktori (membutuhkan AllowOverride All pada konfigurasi utama Apache).
3. Perbaiki Hak Akses File dan Direktori (File Permissions)
Server web Apache sangat sensitif terhadap izin file yang terlalu terbuka. File SHTML yang diatur ke permission 777 justru akan memicu error 500 demi alasan keamanan.
- Ubah izin semua file
.shtmlmenjadi 644. - Ubah izin folder/direktori tempat file tersebut berada menjadi 755.
4. Evaluasi Sintaks Tag Server Side Includes (SSI)
Pastikan baris perintah SSI di dalam file SHTML ditulis dengan sintaks yang valid. Kesalahan penulisan tanda kutip atau nama file yang dipanggil (include) yang tidak ada di direktori dapat menyebabkan server gagal merender halaman.
<!--#include virtual="header.html" -->
Jika file header.html tidak ditemukan atau jalurnya salah, server dapat merespons dengan kesalahan internal.
Tips Mencegah Error Berulang
Selalu lakukan uji coba pada lingkungan pengembangan lokal (staging) sebelum menerapkan perubahan pada file konfigurasi inti di server produksi. Pastikan juga modul mod_include telah aktif pada layanan web server yang Anda gunakan.