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.