Penyebab Utama SSI Include Virtual Error
Error pada <!--#include virtual="..."--> biasanya terjadi karena kegagalan server Apache dalam memetakan path virtual ke sistem file fisik atau adanya batasan konfigurasi. Perintah virtual berbeda dengan file; ia memanggil URL path, bukan path sistem file langsung. Jika server tidak dapat menemukan resource tersebut atau tidak memiliki izin akses, error 404 atau 500 akan muncul.
Tabel Diagnosa Error SSI
| Gejala | Penyebab Umum | Solusi |
|---|---|---|
| Error 404 | Path virtual tidak ditemukan | Verifikasi path relatif dari root dokumen |
| Error 403 | Izin akses file ditolak | Pastikan user web (www-data) memiliki akses baca |
| Error 500 | Modul tidak aktif | Aktifkan mod_include di Apache |
| Output Kosong | Parsing SSI dinonaktifkan | Tambahkan Options +Includes di .htaccess |
Langkah Perbaikan Teknis
Untuk memperbaiki error ini, pastikan konfigurasi server Anda mendukung SSI. Ikuti langkah-langkah berikut:
1. Aktifkan Modul Include
Pastikan modul mod_include sudah dimuat oleh Apache. Jalankan perintah berikut di terminal server:
sudo a2enmod include
sudo systemctl restart apache22. Konfigurasi .htaccess
Tambahkan baris berikut ke dalam file .htaccess di direktori root situs Anda untuk mengizinkan eksekusi SSI:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml3. Verifikasi Path Virtual
Ingat bahwa virtual menggunakan path yang dimulai dari root dokumen (document root). Jika file Anda berada di /var/www/html/includes/header.html, gunakan:
<!--#include virtual="/includes/header.html"-->Jangan gunakan path relatif seperti ../ karena virtual tidak mendukung navigasi direktori ke atas dari root dokumen.
Troubleshooting Lanjutan
Jika masalah berlanjut, periksa log error Apache untuk mendapatkan detail spesifik mengenai kegagalan tersebut. Biasanya log terletak di /var/log/apache2/error.log. Periksa apakah ada pesan 'attempt to invoke directory as script' atau 'access denied' yang menunjukkan masalah pada konfigurasi AllowOverride di file konfigurasi utama Apache (biasanya di /etc/apache2/apache2.conf). Pastikan AllowOverride All diatur untuk direktori yang bersangkutan agar file .htaccess dapat berfungsi dengan optimal.