Migrasi file dengan ekstensi .shtml (Server Side Includes) ke .php (PHP: Hypertext Preprocessor) dilakukan untuk memanfaatkan fungsionalitas backend yang lebih modern, fleksibel, dan mendukung pengelolaan database. Langkah paling krusial dalam proses ini adalah memastikan seluruh struktur direktori, pemanggilan fungsi include, dan pengalihan URL (Redirect 301) dikonfigurasi dengan tepat agar peringkat mesin pencari (SEO) tidak mengalami penurunan.
Secara teknis, file SHTML menggunakan perintah SSI seperti <!--#include virtual="header.html" --> untuk memuat elemen modular. Ketika bermigrasi ke PHP, sintaks tersebut harus diubah menjadi fungsi bawaan PHP seperti <?php include 'header.php'; ?>, dan seluruh server web (seperti Apache atau Nginx) harus diarahkan untuk mengenali ekstensi baru atau memetakan ulang permintaan lama.
Tabel Perbandingan Samping Samping: SHTML vs PHP
| Parameter | SHTML (SSI) | PHP |
|---|---|---|
| Eksekusi Server | mod_include (Apache) | PHP Module / FastCGI / PHP-FPM |
| Sintaks Modular | <!--#include virtual="file.html" --> |
<?php include 'file.php'; ?> |
| Koneksi Database | Tidak Mendukung Secara Langsung | Mendukung (MySQLi, PDO, PostgreSQL, dll) |
| Logika Pemrograman | Sangat Terbatas (Variabel Dasar SSI) | Lengkap (Conditional, Looping, OOP) |
Langkah-Langkah Teknis Migrasi SHTML ke PHP
1. Ubah Ekstensi File dan Perbarui Sintaks Include
Ubah nama file dari nama-halaman.shtml menjadi nama-halaman.php. Selanjutnya, ganti baris kode SSI yang memanggil komponen berulang (seperti header, footer, atau sidebar) ke dalam sintaks PHP.
<!-- Kode Lama di SHTML -->
<!--#include virtual="/includes/header.html" -->
<!-- Kode Baru di PHP -->
<?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'); ?>
2. Konfigurasi Redirect 301 di .htaccess
Untuk menghindari error 404 bagi pengunjung lama dan mesin pencari yang telah mengindeks halaman berformat .shtml, tambahkan aturan pengalihan permanen (Redirect 301) di dalam file .htaccess pada root direktori server Apache Anda.
RewriteEngine On
RewriteCond %{THE_REQUEST} \.shtml[NC]
RewriteRule ^(.*)\.shtml$ /$1.php [R=301,L]
Aturan di atas akan secara otomatis mengarahkan setiap permintaan akses ke domain.com/halaman.shtml menuju ke domain.com/halaman.php dengan status HTTP 301 (Moved Permanently), sehingga otoritas SEO (link juice) dari halaman lama akan ditransfer ke halaman baru.
3. Perbarui Tautan Internal (Internal Links)
Meskipun Anda telah memasang redirect 301, praktik terbaik migrasi adalah memperbarui semua tautan internal di dalam situs web Anda yang masih mengarah ke file berakhiran .shtml agar langsung menunjuk ke ekstensi .php. Hal ini memangkas waktu muat tambahan akibat proses pengalihan server.
Troubleshooting Lapangan
Jika setelah migrasi halaman PHP Anda menampilkan teks kosong atau error 500, periksa beberapa hal berikut:
- Versi PHP: Pastikan hosting Anda menjalankan versi PHP yang kompatibel (disarankan PHP 8.1 atau 8.2 ke atas).
- Short Open Tags: Jika skrip menggunakan tag pendek
<? ... ?>, pastikan pengaturanshort_open_tag = Ondiaktifkan di dalam filephp.ini, atau ubah menjadi tag standar PHP<?php ... ?>. - Rewrite Module: Pastikan modul
mod_rewritepada web server Apache telah aktif jika Anda menggunakan aturan.htaccessuntuk redirect.