Cara Mengaktifkan SSI (Server Side Includes) di Apache

Mengaktifkan Server Side Includes (SSI) pada web server Apache memerlukan tiga langkah utama: memastikan modul include aktif, mengonfigurasi direktif Options +Includes pada blok direktori, dan mendefinisikan ekstensi file target seperti .shtml melalui handler atau tipe MIME. SSI memungkinkan Anda menyisipkan konten dokumen lain ke dalam sebuah halaman web secara dinamis saat halaman tersebut dimuat oleh server.

Langkah 1: Aktifkan Modul Apache (mod_include)

Sebelum konfigurasi direktori dilakukan, pastikan modul mod_include telah dimuat di dalam server Apache Anda. Pada sistem operasi berbasis Debian/Ubuntu, jalankan perintah terminal berikut:

sudo a2enmod include
sudo systemctl restart apache2

Untuk lingkungan CentOS, RHEL, atau Fedora, modul ini biasanya sudah aktif secara default. Anda dapat memastikannya dengan memeriksa baris LoadModule include_module modules/mod_include.so pada berkas konfigurasi utama Apache (httpd.conf atau apache2.conf).

Langkah 2: Konfigurasi Direktori Virtual Host

Setelah modul aktif, Anda harus mengizinkan eksekusi SSI pada direktori web Anda dengan menambahkan direktif Options +Includes. Buka berkas konfigurasi virtual host Anda (misalnya /etc/apache2/sites-available/000-default.conf) dan tambahkan blok berikut:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks +Includes
    AllowOverride All
    Require all granted
</Directory>

Langkah 3: Atur Penanganan Ekstensi Berkas (.shtml)

Secara default, Apache memproses SSI melalui handler khusus atau tipe MIME. Tambahkan baris berikut di dalam blok direktori yang sama atau di dalam berkas .htaccess pada root direktori website Anda agar Apache mengenali file berformat .shtml:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Jika Anda ingin mengizinkan file dengan ekstensi standar .html atau .php untuk memproses SSI (tidak disarankan untuk performa tinggi), ubah baris tersebut menjadi:

AddOutputFilter INCLUDES .html

Tabel Perintah dan Direktori Konfigurasi SSI

Komponen Konfigurasi Sintaks / Perintah Fungsi Utama
Modul Apache sudo a2enmod include Mengaktifkan modul inti mod_include di tingkat server.
Opsi Akses Options +Includes Memberikan izin kepada direktori untuk menjalankan perintah SSI.
Filter Output AddOutputFilter INCLUDES .shtml Memaksa server memindai tag SSI pada ekstensi file tertentu.
Sintaks Penyisipan <!--#include virtual="footer.html" --> Perintah dasar di dalam kode HTML untuk memanggil file eksternal.

Troubleshooting Umum SSI di Apache

Jika setelah melakukan konfigurasi di atas halaman SSI Anda tidak berfungsi atau menampilkan kode mentah, periksa beberapa hal berikut:

  • Log Kesalahan: Periksa error.log Apache untuk mendeteksi kesalahan sintaks konfigurasi direktori.
  • Izin Eksekusi: Pastikan direktori tempat file SSI berada memiliki izin baca yang sesuai untuk pengguna web server (misalnya www-data).
  • Override .htaccess: Pastikan AllowOverride diatur ke All atau mencakup Options jika Anda meletakkan aturan AddOutputFilter di dalam berkas .htaccess.