Penyebab Utama 500 Internal Server Error pada SHTML
Internal Server Error (kode status HTTP 500) pada file dengan ekstensi .shtml biasanya terjadi karena kesalahan konfigurasi server, sintaks Server Side Includes (SSI) yang salah, atau batasan izin akses file. SHTML adalah file HTML yang menyertakan perintah SSI untuk memproses konten dinamis di sisi server sebelum dikirim ke browser. Jika server gagal memproses perintah tersebut, koneksi akan terputus dan menghasilkan error 500.
Langkah Perbaikan Teknis
Ikuti urutan langkah berikut untuk mendiagnosis dan memperbaiki masalah:
| Penyebab | Tindakan Perbaikan |
|---|---|
| Izin File (Permissions) | Pastikan file .shtml memiliki izin 644 dan folder 755. |
| Sintaks SSI Salah | Periksa perintah <!--#include ... --> apakah path file benar. |
| Konfigurasi .htaccess | Hapus baris mencurigakan atau tambahkan handler SSI. |
| Limit Memori/Timeout | Tingkatkan limit PHP atau timeout melalui php.ini atau .htaccess. |
Panduan Konfigurasi .htaccess
Jika server Apache Anda belum mengenali file .shtml secara otomatis, tambahkan baris berikut ke dalam file .htaccess di direktori root situs Anda:
AddType text/html .shtml
AddHandler server-parsed .shtml
Options +IncludesPengecekan Log Error
Langkah paling krusial adalah memeriksa log error server (biasanya error_log di cPanel atau direktori root). Log ini akan memberikan detail spesifik mengapa server menolak memproses file tersebut. Jika Anda melihat pesan "include file not found", pastikan path yang Anda tulis di dalam tag <!--#include virtual="/path/to/file.html" --> sudah absolut dari root direktori.
Tips Troubleshooting
- Validasi Sintaks: Pastikan tidak ada spasi berlebih atau karakter ilegal di dalam tag SSI.
- Cek Modul Server: Pastikan modul
mod_includeaktif di server Apache Anda. - Izin Akses: Jangan pernah memberikan izin 777 pada file .shtml karena akan memicu error keamanan pada server yang dikonfigurasi dengan suPHP atau mod_ruid2.