Server Side Includes (SSI) adalah direktif sederhana yang ditempatkan di dalam halaman web untuk menginstruksikan server web Apache agar menyisipkan isi file lain ke dalam dokumen saat halaman tersebut diminta oleh peramban. Fitur ini sangat berguna untuk memuat komponen berulang seperti header, footer, atau navigasi tanpa harus mengubah setiap file HTML secara manual.
Untuk menggunakan SSI pada web server Apache, pastikan modul include_module (mod_include) telah aktif dan konfigurasi direktori mengizinkan eksekusi SSI menggunakan opsi Includes.
Langkah 1: Mengaktifkan Modul SSI di Apache
Pada sistem berbasis Ubuntu atau Debian, aktifkan modul include menggunakan perintah terminal berikut:
sudo a2enmod include
sudo systemctl restart apache2
Langkah 2: Mengonfigurasi Virtual Host atau .htaccess
Agar Apache memproses perintah SSI, tambahkan direktif Options +Includes dan tentukan ekstensi file yang diizinkan (misalnya .shtml atau .html) menggunakan AddOutputFilter.
<Directory "/var/www/html">
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
Jika menggunakan file .htaccess di direktori root situs web, pastikan baris berikut ditambahkan:
Options +Includes
AddType text/html .html
AddOutputFilter INCLUDES .html
Langkah 3: Sintaks Dasar SSI Include
Gunakan sintaks tag komentar khusus SSI untuk menyisipkan file. Perintah #include mendukung dua parameter utama: virtual (jalur relatif terhadap dokumen web root) dan file (jalur relatif terhadap direktori file saat ini).
<!--#include virtual="/includes/header.html" -->
<!--#include file="footer.html" -->
Tabel Perbandingan Parameter SSI Include
| Parameter | Deskripsi Jalur | Contoh Penggunaan |
|---|---|---|
virtual |
Relatif terhadap DocumentRoot server (dimulai dengan garis miring /) | <!--#include virtual="/assets/nav.html" --> |
file |
Relatif terhadap direktori file yang sedang memanggil (mendukung naik direktori dengan ../) | <!--#include file="../common/sidebar.html" --> |
Troubleshooting Masalah SSI di Apache
Jika file yang di-include tidak tampil atau menghasilkan pesan kesalahan, periksa beberapa hal berikut:
- Error 500 (Internal Server Error): Biasanya disebabkan oleh salah penulisan sintaks direktif di file
.htaccessatau konfigurasi Apache. Periksa log error server (/var/log/apache2/error.log). - File Kosong atau Tidak Muncul: Pastikan jalur file (path) yang dimasukkan pada parameter
virtualataufilebenar dan server memiliki izin baca (permissions) terhadap file tersebut. - Ekstensi File: Jika server dikonfigurasi hanya untuk memproses
.shtml, pastikan file utama Anda menggunakan ekstensi tersebut, bukan standar.htmlkecuali telah ditambahkan viaAddOutputFilter.