Apache Output Filter Includes, yang secara teknis dikenal sebagai modul mod_include, adalah filter dalam server web Apache yang memproses dokumen sebelum dikirim ke klien (browser). Modul ini mengimplementasikan fitur Server Side Includes (SSI), yaitu direktif yang disematkan ke dalam file HTML untuk menyertakan konten file lain, menampilkan variabel lingkungan server, atau mengeksekusi skrip secara dinamis tanpa memerlukan pemrosesan bahasa pemrograman berat seperti PHP untuk tugas tata letak sederhana.
Cara kerja mekanisme ini melibatkan penyaringan aliran keluaran (output stream) oleh Apache. Ketika klien meminta dokumen yang dikonfigurasi untuk diproses oleh INCLUDES, Apache membaca file tersebut, mencari pola sintaks SSI khusus (seperti <!--#include ... -->), mengevaluasinya secara real-time, menyisipkan hasilnya, lalu mengirimkan aliran data akhir ke browser.
Sintaks Dasar dan Arahan SSI
Penggunaan Apache Output Filter Includes memerlukan pemahaman tentang direktif SSI yang dikenali oleh parser. Format dasar arahan SSI menggunakan tag HTML komentar khusus agar tetap valid dibaca oleh editor atau peramban jika tidak diproses, meskipun secara fungsional tag tersebut dibaca oleh server.
<!--#element attribute="value" attribute2="value2" -->
Tabel Direktif Utama mod_include
| Direktif SSI | Fungsi Utama | Contoh Penggunaan |
|---|---|---|
config |
Mengatur format tanggal, ukuran, atau pesan kesalahan | <!--#config timefmt="%Y-%m-%d" --> |
echo |
Menampilkan variabel lingkungan atau variabel server | <!--#echo var="DATE_LOCAL" --> |
exec |
Menjalankan perintah CGI atau eksekusi shell eksternal | <!--#exec cgi="/cgi-bin/script.cgi" --> |
fsize |
Menampilkan ukuran file tertentu | <!--#fsize file="document.pdf" --> |
flastmod |
Menampilkan tanggal modifikasi terakhir file | <!--#flastmod file="index.html" --> |
include |
Menyisipkan isi file lain ke dalam dokumen saat ini | <!--#include virtual="/footer.html" --> |
Konfigurasi Apache untuk Mengaktifkan Output Filter Includes
Secara default, filter INCLUDES mungkin tidak aktif pada setiap direktori demi alasan keamanan dan performa. Untuk mengaktifkannya, Anda harus mengonfigurasi direktif AddOutputFilter atau menggunakan opsi Includes di dalam blok <Directory> atau file .htaccess.
Berikut adalah langkah-langkah konfigurasi teknis:
- Pastikan modul
mod_includesudah dimuat di server Apache Anda (biasanya melalui barisLoadModule include_module modules/mod_include.sodi konfigurasi utama). - Tambahkan izin eksekusi SSI pada direktori target menggunakan arahan
Options. - Terapkan filter keluaran menggunakan
AddOutputFilteratau arahanXBitHack.
<Directory "/var/www/html">
Options +Includes
AddOutputFilter INCLUDES shtml html
</Directory>
Dengan konfigurasi di atas, setiap file dengan ekstensi .html atau .shtml yang diakses dalam direktori tersebut akan melewati filter INCLUDES Apache, memungkinkan pemrosesan tag SSI di dalamnya.
Troubleshooting dan Tips Lapangan
Kendala umum saat menggunakan Apache Output Filter Includes meliputi:
- File tidak terproses: Pastikan ekstensi file terdaftar pada
AddOutputFilterdan opsi+Includesdiaktifkan untuk direktori tersebut (perhatikan apakah ada arahanAllowOverrideyang memblokir file.htaccess). - Masalah Keamanan (Exec): Direktif
execdapat menjadi celah keamanan serius jika pengguna yang tidak berwenang dapat mengunggah file HTML/SHTML. Gunakan opsiIncludesNOEXECdaripadaIncludesjika Anda tidak memerlukan eksekusi skrip sistem atau CGI melalui SSI. - Performa Server: Setiap file yang melalui filter
INCLUDESharus diurai oleh server sebelum dikirim, yang dapat meningkatkan penggunaan CPU pada situs dengan trafik sangat tinggi dibandingkan file statis murni.