Cara Mengatasi Error Server SHTML dan SSI di Apache

Error server terkait file berformat .shtml (Server Side Includes) umumnya disebabkan oleh konfigurasi Apache yang belum mengizinkan eksekusi perintah SSI atau kesalahan sintaks dalam direktif file HTML. Perbaikan utama melibatkan pengaktifan modul include_module pada server, penambahan konfigurasi handler di berkas .htaccess, serta pemeriksaan izin akses file.

Format SHTML sering digunakan untuk menyertakan dokumen lain (seperti header atau footer) ke dalam halaman web secara dinamis. Ketika server mengalami kendala, browser biasanya menampilkan pesan seperti Internal Server Error (500) atau gagal memuat bagian halaman yang disisipkan melalui perintah SSI.

Tabel Matriks Penyebab dan Solusi Error SHTML

Gejala Error Penyebab Utama Solusi Teknis
HTTP 500 Internal Server Error Modul SSI Apache belum aktif atau salah sintaks .htaccess Aktifkan modul mod_include dan perbaiki aturan handler
Perintah SSI tampil sebagai teks mentah Server tidak mengenali ekstensi .shtml sebagai file SSI Tambahkan AddHandler dan AddOutputFilter di konfigurasi web
Pesan [an error occurred while processing this directive] File yang dipanggil via #include tidak ditemukan atau salah path Periksa kembali path relatif atau absolut pada kode SSI

Langkah-Langkah Teknis Perbaikan

1. Mengaktifkan Modul SSI di Apache

Pastikan modul include telah aktif pada server web Apache Anda. Melalui terminal SSH server VPS, jalankan perintah berikut:

sudo a2enmod include
sudo systemctl restart apache2

2. Konfigurasi Berkas .htaccess

Jika Anda menggunakan shared hosting atau tidak memiliki akses root, tambahkan baris kode berikut ke dalam berkas .htaccess di direktori root website Anda untuk mengizinkan parsing SSI:

Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

3. Memeriksa Sintaks Perintah SSI pada File SHTML

Pastikan penulisan tag SSI di dalam file SHTML sudah benar. Format standar untuk menyertakan file adalah sebagai berikut:

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

Perhatikan bahwa penggunaan virtual merujuk pada path relatif terhadap root dokumen, sedangkan file merujuk pada path relatif terhadap file yang sedang dibaca.

Tips Troubleshooting Lapangan

Jika setelah melakukan langkah di atas error masih terjadi, periksa berkas log error Apache (biasanya terletak di /var/log/apache2/error.log atau melalui cPanel Error Log) untuk melihat detail spesifik penyebab kegagalan eksekusi skrip.