Mengatasi error Shtml directive pada server web umumnya berakar dari kesalahan konfigurasi Server Side Includes (SSI), ekstensi file yang belum diaktifkan, atau sintaks direktif yang tidak didukung oleh versi server yang digunakan. Error ini sering muncul dengan pesan seperti "an error occurred while processing this directive" pada file dengan ekstensi .shtml.
Penyebab utama dari masalah ini bervariasi tergantung pada apakah Anda menggunakan server Apache, NGINX, atau IIS. Pada server Apache versi lama (1.X) atau migrasi ke versi baru, modul parser ekspresi SSI seringkali memerlukan deklarasi eksplisit. Sementara itu, pada NGINX atau IIS, ekstensi file tertentu mungkin belum diatur untuk memproses perintah SSI.
Tabel Penyebab dan Solusi Error SHTML Directive
| Skenario Server | Penyebab Utama | Solusi Teknis |
|---|---|---|
| Apache Legacy / Upgrade | Parser ekspresi SSI belum diaktifkan pada berkas konfigurasi utama. | Tambahkan direktif SSILegacyExprParser ke dalam httpd.conf. |
| Penggunaan Ekstensi Lain | Server (seperti IIS) hanya memproses SSI default pada file .shtml, bukan .htm atau .html. |
Konfigurasikan mapping handler agar file .html juga memproses SSI. |
| Struktur Navigasi/Include | File yang dipanggil (seperti nav.include) memiliki ekstensi yang tidak umum atau salah path. |
Pastikan pemanggilan path file menggunakan format relatif yang benar dan ekstensi didukung. |
Langkah-Langkah Perbaikan Teknis
1. Mengaktifkan SSILegacyExprParser pada Apache
Jika server Anda menggunakan konfigurasi Apache dari versi lama dan mendadak memunculkan error processing directive, Anda perlu menambahkan konfigurasi parser warisan ke dalam berkas httpd.conf atau blok VirtualHost:
<Directory "/var/www/html">
Options +Includes
SSILegacyExprParser On
</Directory>
2. Konfigurasi Ekstensi File untuk SSI
Secara default, ekstensi .shtml adalah standar yang disediakan oleh server seperti IIS untuk memproses direktif SSI. Jika Anda ingin menyertakan file SSI di dalam file HTML standar, pastikan handler server dikonfigurasi dengan tepat agar tidak terjadi kegagalan pembacaan kode:
# Contoh konfigurasi handler di Apache untuk file html
AddType text/html .html
AddOutputFilter INCLUDES .html
3. Memeriksa Path dan Ekstensi File Include
Pastikan file yang dipanggil melalui perintah seperti <!--#include virtual="nav.include" --> memiliki path yang valid dan berada dalam direktori yang diizinkan untuk eksekusi SSI. Hindari penggunaan skrip server-side lain di dalam file include murni yang hanya berisi HTML navigasi.
Tips Troubleshooting Lapangan
Selalu periksa file log error server web Anda (seperti error.log pada Apache atau nginx.error.log) untuk melihat baris spesifik yang menyebabkan kegagalan pemrosesan direktif. Pastikan juga izin akses file (file permission) sudah benar agar web server memiliki hak baca terhadap file yang ingin disertakan.