Mengganti format file dari SHTML (Server Side Includes) ke HTML murni dilakukan dengan memperbarui konfigurasi server web (Apache/Nginx) menggunakan URL Rewrite atau membuat pengalihan (redirect) 301 agar peringkat SEO dan tautan lama tidak rusak. File SHTML biasanya digunakan untuk menyertakan elemen berulang seperti header dan footer menggunakan SSI, namun kini fungsinya telah tergantikan oleh bahasa pemrograman modern atau Static Site Generator.
Terdapat tiga metode utama untuk mengubah dan menangani transisi dari SHTML ke HTML, tergantung pada skala situs web dan akses server yang Anda miliki. Berikut adalah tabel perbandingan metode migrasi:
| Metode Migrasi | Tingkat Kesulitan | Akses yang Dibutuhkan | Kelebihan Utama |
|---|---|---|---|
| Apache mod_rewrite (.htaccess) | Menengah | Akses Root / File .htaccess | Otomatis, tidak perlu ubah kode satu per satu |
| PHP Script Bulk Rename | Mudah | Akses File Manager / FTP | Mengubah ekstensi fisik file secara massal |
| Nginx Server Block Rewrite | Lanjutan | Akses Konfigurasi Server Nginx | Performa tinggi untuk server Nginx |
1. Mengubah Ekstensi File Fisik Secara Massal dengan PHP
Jika Anda ingin benar-benar mengubah file fisik dari namafile.shtml menjadi namafile.html di dalam direktori server, Anda bisa menjalankan script PHP sederhana melalui browser atau terminal.
<?php
$dir = __DIR__;
$files = scandir($dir);
foreach ($files as $file) {
$ext = pathinfo($file, PATHINFO_EXTENSION);
if ($ext === 'shtml') {
$newname = basename($file, ".shtml") . ".html";
rename($dir . '/' . $file, $dir . '/' . $newname);
echo "Berhasil mengubah: $file menjadi $newname <br>";
}
}
echo "Proses rename selesai!";
?>
Langkah-langkah teknis:
- Buat file baru bernama
convert.phpdi direktori root situs web Anda. - Tempelkan kode PHP di atas ke dalam file tersebut.
- Akses file melalui browser (contoh:
https://namadomain.com/convert.php). - Hapus file
convert.phpsegera setelah proses selesai demi keamanan server.
2. Mengarahkan URL SHTML ke HTML Menggunakan .htaccess (Apache)
Jika mesin server Anda menggunakan Apache dan Anda ingin pengunjung yang mengakses tautan berakhiran .shtml dialihkan secara otomatis ke .html (atau memproses file HTML agar mendukung SSI), tambahkan aturan pada file .htaccess.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} \.shtml[\s?] [NC]
RewriteRule ^(.*)\.shtml$ /$1.html [R=301,L]
</IfModule>
Aturan di atas memaksa server memberikan respons HTTP 301 Moved Permanently, yang memberi tahu mesin pencari seperti Google bahwa halaman telah berpindah secara permanen ke ekstensi .html.
3. Konfigurasi Nginx untuk Redirect SHTML ke HTML
Bagi pengguna server web Nginx, aturan pengalihan harus disematkan di dalam blok server pada file konfigurasi utama Nginx (biasanya terletak di /etc/nginx/sites-available/namadomain).
server {
listen 80;
server_name namadomain.com www.namadomain.com;
location ~ \.shtml$ {
return 301 $uri_no_ext.html;
}
# Tangkap pola URL untuk menghapus ekstensi shtml
rewrite ^/(.*)\.shtml$ /$1.html permanent;
}
Troubleshooting Lapangan
Kendala yang sering muncul setelah mengganti ekstensi adalah munculnya pesan Error 404 Not Found atau elemen SSI (seperti footer atau header yang menggunakan perintah #include) berhenti berfungsi. Jika Anda mengubah file menjadi .html murni, pastikan Anda telah mengganti fungsi SSI lama dengan sistem templating baru, atau aktifkan kembali parsing SSI untuk file .html pada konfigurasi Apache dengan menambahkan baris berikut di .htaccess:
AddType text/html .html
AddHandler server-parsed .html