Troubleshooting SSI (Server Side Includes) hosting berfokus pada penyelesaian masalah ketika direktif SSI seperti #include, #echo, atau #flastmod tidak dieksekusi oleh server web, yang sering kali berujung pada halaman kosong, teks tag yang tampil mentah di browser, atau Internal Server Error (500). Masalah utama biasanya bersumber dari ekstensi file yang salah, konfigurasi handler Apache/Nginx yang belum aktif, atau larangan pembacaan direktif oleh konfigurasi tingkat direktori.
Untuk mengatasi kendala ini secara sistematis, berikut adalah matriks diagnostik masalah umum pada SSI hosting beserta solusi teknis langsung di tingkat server maupun file konfigurasi:
| Gejala Error | Penyebab Utama | Solusi Teknis |
|---|---|---|
| Tag SSI tampil sebagai teks biasa di browser | Ekstensi file masih .html atau .php, server tidak memproses SSI untuk file tersebut. | Ubah ekstensi file menjadi .shtml atau tambahkan handler di file .htaccess. |
| Internal Server Error (500) saat membuka halaman SSI | Kesalahan sintaks pada direktif SSI atau direktif Options +Includes ditolak oleh server utama (Overridden). |
Periksa log error server (error_log), pastikan sintaks benar, dan cek izin AllowOverride di konfigurasi Apache. |
Perintah #include virtual gagal memuat file |
Path file salah atau modul SSI pada server web belum diaktifkan sepenuhnya. | Gunakan path relatif yang akurat atau aktifkan modul mod_include (Apache) / modul SSI (Nginx). |
1. Memastikan Ekstensi File dan Handler .htaccess
Secara default, sebagian besar server web mengonfigurasi SSI hanya untuk file dengan ekstensi .shtml, .shtm, atau .stm. Jika Anda menulis kode SSI di dalam file berformat .html, server akan mengabaikannya kecuali Anda secara eksplisit mengaktifkan parsing SSI untuk file HTML.
Untuk mengaktifkan SSI pada file berformat .html dan .htm melalui file .htaccess di direktori root hosting Anda, tambahkan baris kode konfigurasi berikut:
AddType text/html .shtml .html .htm
AddHandler server-parsed .shtml .html .htm
Options +Includes
Jika server merespons dengan Internal Server Error (500) setelah Anda menambahkan baris di atas, artinya penyedia hosting Anda membatasi penggunaan direktif Options +Includes di tingkat lokal. Hapus baris Options +Includes dan hubungi dukungan teknis hosting Anda untuk mengaktifkannya dari sisi server utama (httpd.conf/nginx.conf).
2. Memperbaiki Kesalahan Penulisan Sintaks SSI
Sintaks SSI sangat sensitif terhadap spasi dan format komentar HTML. Kesalahan kecil seperti spasi yang kurang atau salah menggunakan tanda kutip akan membuat server gagal menerjemahkan perintah. Pastikan format penulisan tag SSI Anda mengikuti standar di bawah ini:
<!--#include virtual="/header.html" -->
<!--#echo var="DATE_LOCAL" -->
<!--#flastmod file="index.html" -->
Perhatikan bahwa spasi wajib ada setelah tanda seru ganda (<!--#) dan sebelum penutup tag (-->). Jika Anda menggunakan #include virtual, pastikan path diawali dengan garis miring (slash) jika merujuk dari root direktori domain Anda.
3. Konfigurasi SSI pada Nginx Web Server
Jika hosting Anda menggunakan Nginx dan bukan Apache, file .htaccess tidak akan dibaca oleh server. Anda harus mengaktifkan SSI langsung melalui blok server di file konfigurasi Nginx (biasanya diatur melalui panel kontrol hosting seperti cPanel, CyberPanel, atau Nginx Proxy Manager).
Tambahkan baris berikut ke dalam blok server atau location:
location / {
ssi on;
ssi_types text/html application/xhtml+xml;
}
Setelah menambahkan konfigurasi tersebut, simpan file dan lakukan restart atau reload layanan Nginx dengan perintah terminal:
sudo systemctl reload nginx
4. Tips Troubleshooting Lapangan
Selalu periksa file Error Log pada cPanel atau direktori log server Anda (misalnya /var/log/apache2/error.log) ketika menemui kendala. Pesan seperti "[error] [client ...] SSI-enabled: script '...' not found or unable to stat" menunjukkan bahwa path file yang dipanggil melalui perintah #include tidak ditemukan oleh sistem, atau izin akses (chmod) file tersebut terlalu ketat (disarankan menggunakan izin file 644 dan folder 755).