Cara Mengatasi HTTP 500 Internal Server Error pada File SHTML

HTTP 500 Internal Server Error saat mengakses file berformat SHTML (.shtml) di server Apache umumnya disebabkan oleh kesalahan konfigurasi pada file .htaccess, masalah sintaks Server Side Includes (SSI), atau batas memori PHP/Apache yang terlampaui. Untuk mengatasi hal ini secara cepat, Anda perlu memeriksa error log server, memastikan modul mod_include aktif, serta memverifikasi izin akses file dan direktori.

Server Side Includes (SSI) membutuhkan instruksi khusus agar Apache dapat memproses direktif seperti <!--#include virtual="header.shtml" -->. Kesalahan kecil dalam penulisan tag SSI atau konflik direktif di .htaccess akan langsung memicu kegagalan server dengan kode 500.

Langkah-Langkah Perbaikan Teknis

1. Periksa Log Error Apache (Error Log)

Langkah paling akurat untuk menemukan akar masalah adalah membaca file log error Apache pada server Anda. Letak file ini biasanya berada di /var/log/apache2/error.log (Ubuntu/Debian) atau /usr/local/apache/logs/error_log (cPanel/WHM).

tail -n 50 /var/log/apache2/error.log

Cari baris yang mengandung pesan spesifik seperti AH01075, Invalid command 'AddHandler', atau SSI: execution failed.

2. Koreksi Konfigurasi File .htaccess

Pastikan direktif SSI diaktifkan dengan benar untuk file SHTML. Tambahkan atau periksa baris kode berikut di dalam file .htaccess pada direktori root website Anda:

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

Jika server Anda menggunakan suEXEC atau handler FastCGI tertentu, perintah Options +Includes dapat memicu 500 Internal Server Error jika tidak diizinkan oleh konfigurasi global httpd.conf atau apache2.conf. Jika demikian, hapus baris Options +Includes dan tanyakan kepada penyedia hosting Anda mengenai dukungan SSI.

3. Periksa Sintaks dan Tag SSI

Kesalahan penulisan pada tag HTML komentar SSI sering disalahartikan oleh parser Apache sebagai fatal error. Pastikan tidak ada typo pada sintaks berikut:

<!--#include virtual="/path/to/file.html" -->

Perhatikan spasi di dalam tanda kurung siku ganda. Spasi yang salah atau kurang pada --> dapat membuat server gagal merender halaman.

4. Periksa Hak Akses (Permission) File

File SHTML dan direktori penyimpanannya harus memiliki hak akses yang benar agar dapat dibaca oleh user Apache (biasanya www-data atau nobody).

Tipe Objek Hak Akses (chmod) Keterangan
Direktori/Folder 755 Dapat dibaca dan dieksekusi oleh server
File SHTML 644 Hanya dapat ditulis oleh pemilik, dibaca oleh publik
File .htaccess 644 Aman dari modifikasi eksternal yang tidak sah

Troubleshooting Lanjutan

Jika langkah di atas belum menyelesaikan masalah, pastikan modul include pada Apache telah diaktifkan di level server:

sudo a2enmod include
sudo systemctl restart apache2

Bagi pengguna panel kontrol seperti cPanel, pastikan handler untuk ekstensi .shtml sudah terdaftar dengan handler tipe server-parsed melalui menu Apache Handlers di dalam dashboard hosting Anda.