Cara Mengatasi Error Shtml Internal Server Error

Pesan Internal Server Error (HTTP 500) saat mengakses file berformat .shtml menandakan adanya kegagalan eksekusi pada server web (seperti Apache) yang mengolah instruksi Server Side Includes (SSI). Masalah ini umumnya bersumber dari konfigurasi direktif SSI yang tidak valid di file .htaccess, kesalahan sintaks dalam baris kode SSI di dalam file HTML, atau konfigurasi izin (permission) file yang terlalu longgar maupun terlalu ketat.

Untuk menyelesaikan masalah ini secara permanen, Anda perlu melakukan penelusuran sistematis mulai dari pemeriksaan file log error server, peninjauan konfigurasi direktif Apache, hingga perbaikan kode SSI yang disematkan di dalam halaman tersebut.

Penyebab Utama Shtml Internal Server Error

Penyebab Gejala & Indikator Lokasi Pemeriksaan
Kesalahan Direktif .htaccess Error muncul di seluruh halaman .shtml dalam satu direktori. File .htaccess di root folder web.
Sintaks SSI Salah Error hanya terjadi pada halaman tertentu yang baru disunting. File .shtml spesifik yang diakses.
Izin File / Folder Tidak Tepat File tidak dapat dibaca oleh modul handler web server. File permission melalui FTP/File Manager (Ideal: 644).
Modul SSI Apache Non-aktif Server gagal memproses tag #include atau #exec. Konfigurasi server utama (httpd.conf / a2enmod).

Langkah Perbaikan Teknis

1. Periksa File Log Error (Error Log)

Langkah paling akurat untuk mendeteksi akar masalah adalah membaca catatan kesalahan server. Akses cPanel Anda, pilih menu Error Log, atau akses melalui SSH ke direktori log Apache (biasanya di /var/log/apache2/error.log atau usr/local/apache/logs). Cari baris log yang mencatat waktu terjadinya akses ke file .shtml tersebut untuk melihat pesan spesifik, seperti "Options ExecCGI is off in this directory" atau "request failed: malformed header from script".

2. Koreksi Konfigurasi di File .htaccess

Jika server Anda memerlukan modul SSI diaktifkan secara manual melalui direktori lokal, pastikan sintaks di dalam file .htaccess sudah benar. Tambahkan atau sesuaikan konfigurasi berikut:

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

Jika terjadi konflik dengan modul CGI atau konfigurasi server utama, baris Options +Includes dapat memicu kesalahan 500 jika tidak diizinkan oleh administrator server (AllowOverride berstatus terbatas). Ubah menjadi Options -Indexes +Includes atau hapus baris Options jika server sudah mengaturnya secara global.

3. Validasi Sintaks Server Side Includes (SSI)

Kesalahan penulisan tag HTML komentar SSI menjadi pemicu paling sering pada level aplikasi. Pastikan penulisan tag pembuka dan penutup sesuai standar:

<!--#include virtual="header.html" -->

Perhatikan hal-hal berikut pada kode SSI Anda:

  • Gunakan spasi yang tepat di dalam tanda kurung siku ganda.
  • Pastikan file yang dipanggil (misalnya header.html) benar-benar ada di direktori yang dimaksud. Pemanggilan file menggunakan path absolut yang salah akan memutus eksekusi server.
  • Hindari penggunaan perintah #exec jika tidak diizinkan oleh kebijakan keamanan server hosting Anda.

4. Periksa Hak Akses (File Permissions)

Kesalahan izin file membuat server menolak membaca file .shtml tersebut. Gunakan FTP client atau File Manager hosting untuk menetapkan:

  • File .shtml dan .html: 644 (Read dan Write untuk pemilik, Read untuk grup dan publik).
  • Direktori / Folder: 755 (Read, Write, dan Execute untuk pemilik, Read dan Execute untuk grup dan publik).

Tips Mencegah Error Berulang

Selalu lakukan uji coba pada lingkungan pengembangan lokal (staging) sebelum mengunggah file .shtml yang telah dimodifikasi ke server produksi. Pastikan penyedia hosting Anda mengaktifkan modul mod_include pada server Apache atau LiteSpeed yang digunakan.