Cara Mengatasi Error 500 Saat Load SHTML di Server

Error 500 Internal Server Error saat memuat file berformat .shtml (Server Side Includes) umumnya disebabkan oleh kesalahan konfigurasi pada berkas .htaccess, modul Apache mod_include yang tidak aktif, atau batas eksekusi skrip (timeout) yang terlampaui. Karena file SHTML mengeksekusi perintah server sebelum dikirim ke peramban, kesalahan sintaks sekecil apa pun pada tag SSI akan langsung memicu kegagalan server total.

Untuk mengatasi masalah ini secara permanen, Anda perlu melakukan pemeriksaan berjenjang mulai dari log kesalahan server (error log), konfigurasi modul Apache, hingga sintaks tag SSI di dalam file SHTML itu sendiri.

Tabel Diagnostik Penyebab & Solusi Error 500 SHTML

Penyebab Utama Indikator / Log Error Solusi Perbaikan
Modul Apache Non-Aktif Invalid command 'AddHandler', perhaps misspelled... Aktifkan modul mod_include dan mod_cgid di server.
Konfigurasi .htaccess Salah 500 Internal Server Error saat akses URL .shtml Koreksi sintaks Handler atau Options di berkas .htaccess.
Kesalahan Tag SSI [an error occurred while processing this directive] atau blank Periksa path file pada tag .
Limit PHP / Suexec SuexecCronolog atau SoftException Sesuaikan izin (permission) file SHTML ke 644 dan folder ke 755.

Langkah Teknis Mengatasi Error 500 SHTML

1. Periksa Berkas .htaccess

Kesalahan penulisan direktif di dalam .htaccess adalah pemicu nomor satu. Pastikan Anda mendeklarasikan handler SSI dengan benar tanpa memuat perintah yang tidak didukung oleh server web Anda.

AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes

Jika server Anda menggunakan suEXEC atau pembatasan keamanan ketat, perintah Options +Includes terkadang ditolak oleh server dan memicu Error 500. Jika hal ini terjadi, hapus baris Options +Includes atau konsultasikan dengan penyedia layanan hosting Anda.

2. Verifikasi Sintaks Tag Server Side Includes (SSI)

Pastikan tag SSI yang Anda gunakan di dalam file .shtml sudah benar. Perhatikan penggunaan spasi dan tanda kutip ganda:

<!--#include virtual="/header.html" -->
<!--#echo var="DATE_LOCAL" -->

Jangan menggunakan path relatif yang keluar dari direktori root tanpa izin (misalnya menggunakan ../../ yang mengarah ke luar public_html), karena server akan memblokirnya demi keamanan dan mencatatnya sebagai kegagalan internal.

3. Cek Hak Akses (File Permission)

Hak akses file yang terlalu longgar (misalnya 777) sering kali ditolak oleh keamanan server modern berbasis Apache/Nginx (mod_security atau suEXEC). Pastikan:

  • Hak akses folder/direktori adalah 755.
  • Hak akses file .shtml adalah 644.

4. Periksa Error Log Apache / cPanel

Jika langkah di atas belum berhasil, akses panel kontrol hosting Anda (cPanel/DirectAdmin) lalu buka menu Error Log. Cari baris terakhir saat error 500 terjadi untuk mengetahui secara pasti baris kode atau modul apa yang mengalami kegagalan.