Cara Mengatasi Shtml Tidak Berfungsi di Server Web

File SHTML (Server Side Includes) yang tidak berfungsi biasanya ditandai dengan teks kode SSI mentah yang tampil di browser atau muncul pesan error 500 Internal Server Error saat diakses. Masalah ini terjadi karena server web Apache atau Nginx belum dikonfigurasi secara spesifik untuk memproses perintah SSI pada ekstensi file .shtml, sehingga server memperlakukannya sebagai file HTML biasa tanpa mengeksekusi fungsi penyertaan modul.

Penyebab utama kegagalan fungsi SHTML mencakup modul Apache include_module yang belum aktif, ketiadaan konfigurasi handler di file .htaccess, atau pengaturan direktori yang membatasi eksekusi perintah server-side. Berikut adalah tabel ringkasan analisis penyebab dan solusi cepat untuk mengatasi kendala SHTML tidak berfungsi pada berbagai panel hosting populer.

Penyebab UtamaGejala di BrowserSolusi Perbaikan Teknis
Modul Apache Non-AktifKode SSI tampil teks biasaAktifkan mod_include via terminal atau WHM
Handler .shtml Belum AdaFile diunduh alih-alih direnderTambahkan AddHandler server-parsed di .htaccess
Options Includes KurangError 500 saat memanggil includeTambahkan Options +Includes pada direktori
Konfigurasi Nginx SalahFungsi virtual include gagal totalAtur ssix on; pada blok server block Nginx

1. Mengaktifkan Handler SHTML Melalui File .htaccess

Langkah paling mendasar dan sering berhasil untuk memperbaiki SHTML yang tidak berfungsi di server Apache adalah dengan menambahkan baris kode khusus ke dalam file .htaccess di direktori root situs web Anda. File ini berfungsi sebagai pengatur instruksi tingkat direktori untuk memberi tahu server bagaimana cara memperlakukan ekstensi file tertentu, termasuk file berekstensi .shtml.

Buka file .htaccess menggunakan pengelola file cPanel atau teks editor via FTP, lalu tambahkan konfigurasi perintah AddType text/html .shtml dan AddHandler server-parsed .shtml. Pastikan juga Anda menyertakan baris Options +Includes agar server mengizinkan eksekusi perintah SSI di dalam file tersebut. Jika file .htaccess belum ada, buat file baru di folder public_html.

2. Memastikan Modul Apache mod_include Aktif

Jika penambahan kode pada file .htaccess menghasilkan Error 500 (Internal Server Error), besar kemungkinan modul server yang bernama mod_include belum diaktifkan oleh administrator server pada tingkat global. Bagi pengguna yang mengelola VPS mandiri atau dedicated server berbasis Ubuntu/Debian, modul ini dapat diaktifkan melalui perintah terminal SSH menggunakan hak akses root.

Jalankan perintah sudo a2enmod include pada terminal SSH Anda, kemudian lakukan restart pada layanan web server Apache dengan mengetikkan sudo systemctl restart apache2. Untuk pengguna panel kontrol seperti cPanel/WHM, modul Apache dapat diperiksa dan diaktifkan melalui menu EasyApache 4 dengan mencentang modul SSI pada profil server yang sedang digunakan.

3. Mengatur Konfigurasi SSI pada Web Server Nginx

Bagi administrator web yang menggunakan Nginx sebagai web server utama atau sebagai reverse proxy di depan Apache, penanganan file SHTML memerlukan blok konfigurasi khusus di dalam file nginx.conf atau file konfigurasi virtual host domain Anda. Nginx tidak membaca file .htaccess, sehingga seluruh aturan SSI harus didefinisikan secara langsung di dalam blok server.

Tambahkan baris perintah ssi on; di dalam blok server atau blok location untuk file html dan shtml. Contoh penerapan kodenya adalah sebagai berikut: location ~* \.(shtml|html)$ { ssi on; }. Setelah menyimpan perubahan konfigurasi tersebut, lakukan uji sintaks dengan perintah sudo nginx -t dan lanjutkan dengan me-restart layanan Nginx menggunakan perintah sudo systemctl restart nginx.

4. Validasi Sintaks Kode Server Side Includes (SSI)

Terkadang masalah SHTML tidak berfungsi bukan disebabkan oleh konfigurasi server yang keliru, melainkan adanya kesalahan penulisan sintaks di dalam file SHTML itu sendiri. Perintah SSI memiliki format penulisan yang sangat ketat, di mana spasi dan tanda kutip memegang peranan penting agar server dapat menerjemahkan perintah dengan benar tanpa menghasilkan error keluaran.

Pastikan penulisan tag menyertakan format yang benar seperti <!--#include virtual="header.html" -->. Perhatikan penggunaan tanda pagar (#) dan spasi di dalam tanda kurung siku ganda. Jika Anda memanggil file menggunakan parameter file alih-alih virtual, pastikan jalur direktori file yang dipanggil berada dalam satu level atau direktori bawahan yang diizinkan oleh sistem keamanan server.