Migrasi SHTML ke PHP: Panduan Teknis & Redirect Aman

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 pengaturan short_open_tag = On diaktifkan di dalam file php.ini, atau ubah menjadi tag standar PHP <?php ... ?>.
  • Rewrite Module: Pastikan modul mod_rewrite pada web server Apache telah aktif jika Anda menggunakan aturan .htaccess untuk redirect.