Fungsi Options +Includes dalam .htaccess
Direktif Options +Includes dalam file .htaccess digunakan untuk mengaktifkan fitur Server Side Includes (SSI) pada server web Apache. SSI memungkinkan Anda menyisipkan konten dinamis (seperti tanggal, file lain, atau output skrip) ke dalam file HTML statis sebelum dikirim ke browser pengunjung. Tanpa mengaktifkan opsi ini, server akan mengabaikan perintah SSI dan menampilkannya sebagai teks biasa.
Sintaks Implementasi
Untuk mengaktifkan SSI, tambahkan baris berikut ke dalam file .htaccess di direktori root atau folder spesifik Anda:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtmlPenjelasan teknis: AddType dan AddOutputFilter diperlukan agar server mengenali file dengan ekstensi .shtml sebagai file yang harus diproses oleh mesin SSI.
Tabel Konfigurasi SSI
| Direktif | Fungsi |
|---|---|
| Options +Includes | Mengaktifkan pemrosesan SSI di direktori tersebut. |
| Options +IncludesNOEXEC | Mengaktifkan SSI tetapi melarang perintah eksekusi skrip (lebih aman). |
| AddType text/html .shtml | Memberitahu server bahwa file .shtml adalah dokumen HTML. |
| AddOutputFilter INCLUDES .shtml | Memerintahkan server untuk memproses filter SSI pada file .shtml. |
Langkah Implementasi dan Troubleshooting
- Pastikan modul
mod_includetelah aktif di server Apache Anda. - Buat file dengan ekstensi
.shtml(misalnya:index.shtml). - Masukkan kode SSI, contoh:
<!--#include virtual="header.html" -->. - Jika muncul error 500, periksa apakah penyedia hosting Anda mengizinkan penggunaan
Optionsdi.htaccessmelalui filehttpd.confatauapache2.conf. - Gunakan
Options +IncludesNOEXECjika Anda hanya ingin menyisipkan file tanpa menjalankan perintah sistem (sepertiexec) untuk alasan keamanan.
Keamanan SSI
Penggunaan Options +Includes secara sembarangan dapat membuka celah keamanan. Jika server dikonfigurasi untuk mengizinkan eksekusi perintah sistem (exec), penyerang dapat menjalankan perintah shell melalui file yang disisipkan. Selalu gunakan IncludesNOEXEC jika fitur eksekusi perintah tidak diperlukan.