Panduan Apache SSI: Daftar Directive SHTML dan Cara Implementasi

Memahami Apache Server Side Includes (SSI)

Istilah 'Apache Shtml Directive' merujuk pada penggunaan Server Side Includes (SSI), yaitu mekanisme pada server web Apache yang memungkinkan penyisipan konten dinamis ke dalam file HTML statis sebelum dikirim ke browser klien. File yang menggunakan fitur ini biasanya memiliki ekstensi .shtml atau .shtm. SSI bekerja dengan memproses perintah (directive) yang tertanam di dalam komentar HTML khusus, yang kemudian dieksekusi oleh modul mod_include pada Apache.

Daftar Directive Utama SSI

Berikut adalah daftar directive standar yang digunakan dalam file SHTML untuk memanipulasi konten server:

DirectiveFungsi
#includeMenyisipkan konten dari file lain ke dalam dokumen saat ini.
#echoMenampilkan variabel lingkungan server (seperti tanggal atau IP).
#execMenjalankan perintah shell atau skrip CGI eksternal.
#configMengatur format tanggal atau pesan kesalahan.
#flastmodMenampilkan tanggal modifikasi terakhir file.
#fsizeMenampilkan ukuran file tertentu.

Implementasi Teknis

Untuk mengaktifkan SSI pada server Apache, pastikan modul mod_include telah dimuat. Anda perlu menambahkan konfigurasi pada file .htaccess atau konfigurasi virtual host sebagai berikut:

Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Setelah konfigurasi aktif, Anda dapat menyisipkan directive di dalam file HTML Anda. Contoh penggunaan untuk menyisipkan file header:

<!--#include virtual="/header.html" -->

Contoh untuk menampilkan tanggal modifikasi terakhir:

File ini terakhir diubah pada: <!--#flastmod file="index.html" -->

Keamanan dan Troubleshooting

Penggunaan directive #exec sangat berisiko karena memungkinkan eksekusi perintah sistem. Sangat disarankan untuk menonaktifkan fitur ini di lingkungan produksi kecuali benar-benar diperlukan. Jika directive tidak muncul (hanya terlihat sebagai komentar HTML), periksa hal berikut:

  • Pastikan mod_include aktif (cek dengan apachectl -M).
  • Pastikan direktori memiliki izin Options +Includes.
  • Periksa apakah ekstensi file sudah terdaftar dalam AddOutputFilter.
  • Pastikan sintaks komentar menggunakan spasi yang tepat: <!--#directive parameter="value" -->.