Cara Mengganti File SHTML ke HTML Secara Otomatis dan Cepat

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:

  1. Buat file baru bernama convert.php di direktori root situs web Anda.
  2. Tempelkan kode PHP di atas ke dalam file tersebut.
  3. Akses file melalui browser (contoh: https://namadomain.com/convert.php).
  4. Hapus file convert.php segera 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