Mengonfigurasi MIME type untuk file SHTML (Server Side Includes) diperlukan agar server web mengenali ekstensi .shtml dan memproses instruksi SSI di dalamnya, seperti perintah #include. Tanpa konfigurasi yang tepat, browser pengguna akan mengunduh file SHTML sebagai dokumen teks biasa atau menampilkan kode sumber mentah alih-alih merendernya sebagai HTML.
Pada server web Apache, modul mod_include harus diaktifkan dan handler untuk tipe media text/html dengan ekstensi .shtml harus didefinisikan. Sementara pada Nginx, pemrosesan SSI dikelola melalui direktif ssi on; di dalam blok server atau lokasi, disertai pemetaan tipe MIME standar di dalam file konfigurasi utama.
Konfigurasi SHTML MIME Type di Apache
Apache biasanya sudah menyertakan modul SSI secara default, namun Anda perlu memastikan modul tersebut aktif dan konfigurasi handler serta opsi eksekusinya terpasang dengan benar di file httpd.conf, apache2.conf, atau file konfigurasi virtual host (.htaccess).
Langkah-langkah Konfigurasi Apache
- Buka file konfigurasi Apache atau file
.htaccessdi direktori root web Anda. - Tambahkan baris direktif untuk mengaktifkan handler dan filter SSI pada ekstensi
.shtml. - Simpan perubahan dan lakukan uji sintaks konfigurasi sebelum melakukan restart layanan Apache.
# Aktifkan handler untuk file .shtml
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
# Pastikan opsi Includes diizinkan pada direktori web
<Directory "/var/www/html">
Options +Includes
</Directory>
Konfigurasi SHTML MIME Type di Nginx
Nginx tidak memiliki modul SSI yang aktif secara otomatis untuk semua ekstensi tanpa deklarasi eksplisit. Anda harus memastikan tipe MIME text/html shtml; terdaftar di dalam blok types (biasanya di /etc/nginx/mime.types) dan mengaktifkan fungsi SSI pada blok server yang relevan.
Langkah-langkah Konfigurasi Nginx
/etc/nginx/sites-available/default).ssi on; di dalam blok location yang menangani file HTML atau SHTML..shtml mengarah ke text/html.server {
listen 80;
server_name contoh.com;
root /var/www/html;
index index.shtml index.html index.htm;
location / {
ssi on;
try_files $uri $uri/ =404;
}
}
# Di dalam file mime.types pastikan baris ini ada:
types {
text/html html htm shtml;
}
Tabel Perbandingan Pengaturan SHTML Berdasarkan Web Server
| Web Server | Modul / Direktif Utama | MIME Type | File Konfigurasi Target |
|---|---|---|---|
| Apache HTTP Server | AddType, AddOutputFilter INCLUDES, Options +Includes |
text/html |
httpd.conf, apache2.conf, atau .htaccess |
| Nginx | ssi on;, blok types |
text/html shtml |
nginx.conf atau file virtual host di sites-available/ |
Troubleshooting Masalah SHTML
Jika file SHTML masih menampilkan teks mentah alih-alih mengeksekusi perintah seperti <!--#include virtual="header.html" -->, periksa beberapa hal berikut:
- Apache: Pastikan modul
mod_includeaktif (jalankan perintaha2enmod includedi Ubuntu/Debian). - Nginx: Pastikan direktif
ssi on;benar-benar berada di dalam kontekshttp,server, ataulocationyang aktif. - Izin File: Pastikan pengguna web server (seperti
www-dataataunginx) memiliki hak akses baca terhadap file yang disertakan (included files).