Server Side Includes (SSI) adalah bahasa scripting direktif sederhana yang digunakan pada web server untuk menyisipkan konten suatu file ke dalam file HTML lainnya. Pada web server Apache, konfigurasi SSI memerlukan pengaktifan modul include_module serta penyesuaian konfigurasi direktori agar server mengenali dan memproses ekstensi file tertentu, seperti .shtml.
Penggunaan SSI sangat berguna untuk menyertakan komponen berulang seperti header, footer, atau tanggal modifikasi file terakhir tanpa harus mengubah setiap halaman HTML secara manual. Berdasarkan data ekosistem perangkat lunak server web, Apache tetap menjadi salah satu server populer yang mendukung modul ini secara native melalui konfigurasi berkas httpd.conf atau berkas konfigurasi virtual host.
Langkah Pengaktifan Modul SSI di Apache
Sebelum menggunakan direktif SSI, pastikan modul include pada Apache telah aktif. Pada sistem operasi berbasis Linux seperti Ubuntu atau Debian, Anda dapat mengaktifkannya menggunakan perintah terminal:
sudo a2enmod include
sudo systemctl restart apache2
Untuk pengguna sistem berbasis Red Hat atau Windows (XAMPP/WAMP), pastikan baris berikut pada berkas konfigurasi utama httpd.conf tidak memiliki tanda pagar (#) di depannya:
LoadModule include_module modules/mod_include.so
Konfigurasi Direktori dan Options
Agar Apache mengizinkan eksekusi SSI pada direktori web Anda, tambahkan direktif Options +Includes serta atur pengendali handler file. Berikut adalah contoh blok konfigurasi pada berkas httpd.conf atau blok <Directory>:
<Directory "/var/www/html">
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
Jika Anda ingin file dengan ekstensi standar .html atau .htm diproses oleh SSI (meskipun dapat menurunkan performa server secara keseluruhan), Anda dapat mengganti filter output-nya menjadi:
AddOutputFilter INCLUDES .html
Tabel Parameter Direktif SSI
| Direktif SSI | Sintaks Contoh | Fungsi Utama |
|---|---|---|
#include |
<!--#include virtual="header.html" --> |
Menyisipkan konten dari file lain ke dalam dokumen saat ini. |
#echo |
<!--#echo var="DATE_LOCAL" --> |
Menampilkan variabel server seperti tanggal atau alamat IP klien. |
#flastmod |
<!--#flastmod file="index.html" --> |
Menampilkan waktu modifikasi terakhir dari suatu file. |
#set |
<!--#set var="title" value="Beranda" --> |
Membuat atau mengubah nilai variabel kustom. |
Tips Keamanan dan Troubleshooting
Penggunaan SSI memiliki risiko keamanan jika pengguna publik dapat mengunggah file ke server Anda, karena mereka berpotensi menjalankan perintah sistem melalui direktif #exec. Pastikan direktif Options tidak menyertakan IncludesNOEXEC jika Anda ingin melarang eksekusi perintah shell berbahaya, atau gunakan konfigurasi aman berikut:
Options +Includes -ExecCGI
Jika tag SSI tidak berfungsi dan hanya tampil sebagai komentar biasa di browser (source code HTML), periksa kembali apakah ekstensi file sudah benar (gunakan .shtml), pastikan modul sudah dimuat, dan cek apakah direktif Includes telah diizinkan pada blok direktori server web Anda.