Melakukan redirect atau pengalihan halaman secara langsung menggunakan Server Side Includes (SSI) murni tidak didukung oleh spesifikasi standar SSI karena SSI dirancang untuk menyertakan konten file (seperti header atau footer), bukan untuk memanipulasi header HTTP status kode status seperti 301 Moved Permanently atau 302 Found. Namun, pengalihan berbasis SSI dapat disimulasikan menggunakan kombinasi arahan #include bersama skrip sisi klien seperti tag HTML <meta http-equiv="refresh"> atau skrip JavaScript.
Untuk implementasi server yang benar dan optimal, pengalihan URL seharusnya ditangani langsung oleh konfigurasi web server seperti Apache (menggunakan modul mod_rewrite atau berkas .htaccess) atau Nginx (menggunakan blok return atau rewrite). Menggunakan SSI untuk pengalihan halaman memperlambat waktu muat karena browser harus memuat halaman terlebih dahulu sebelum memproses instruksi pengalihan.
Metode Pengalihan pada Lingkungan SSI
Jika server Anda hanya mengizinkan eksekusi SSI (.shtml) tanpa akses penuh ke konfigurasi server utama (seperti file httpd.conf atau nginx.conf), berikut adalah metode yang biasa digunakan untuk melakukan pengalihan:
<!--#if expr="$REQUEST_URI = /halaman-lama.shtml" -->
<meta http-equiv="refresh" content="0;url=https://domain.com/halaman-baru.html">
<!--#endif -->Meskipun metode di atas dapat memindahkan pengunjung, mesin pencari seperti Google sering kali mengabaikan tag meta refresh yang lambat atau memperlakukannya tidak setara dengan HTTP 301 redirect, yang berdampak buruk pada SEO situs web Anda.
Tabel Komparasi Metode Pengalihan URL
| Metode | Jenis HTTP Status | Kecepatan Eksekusi | Dampak SEO | Tingkat Kesulitan |
|---|---|---|---|---|
| Apache .htaccess (Redirect 301) | 301 Moved Permanently | Sangat Cepat (Di level server) | Sangat Baik (Memindahkan PageRank) | Mudah |
| Nginx return 301 | 301 Moved Permanently | Sangat Cepat (Di level server) | Sangat Baik (Memindahkan PageRank) | Menengah |
| PHP header('Location: ...', true, 301) | 301 atau 302 | Cepat (Dieksekusi interpreter) | Baik | Mudah |
| SSI + Meta Refresh / JS | 200 OK (Bukan redirect asli) | Lambat (Render klien dulu) | Buruk (Dianggap soft 404/refresh) | Mudah |
| HTML Meta Refresh Tag | 200 OK | Lambat | Buruk | Sangat Mudah |
Cara Konfigurasi Redirect yang Benar di Server
Daripada menggunakan SSI untuk pengalihan, gunakan konfigurasi native web server Anda. Berikut adalah contoh sintaks yang benar:
1. Menggunakan Apache (.htaccess)
Redirect 301 /lama.shtml /baru.html2. Menggunakan Nginx
server {
listen 80;
server_name contoh.com;
location /lama.shtml {
return 301 https://contoh.com/baru.html;
}
}Troubleshooting Masalah Pengalihan
Jika Anda terpaksa menggunakan SSI untuk menyertakan file navigasi global dan mendapati masalah perulangan pengalihan (redirect loop), pastikan kondisi variabel SSI $DOCUMENT_URI atau $QUERY_STRING tidak mencakup halaman tujuan pengalihan itu sendiri. Selalu uji respons header HTTP menggunakan perintah cURL di terminal:
curl -I https://namadomain.com/halaman-lama.shtmlPeriksa apakah server mengembalikan kode HTTP/1.1 301 Moved Permanently beserta header Location yang akurat. Jika server mengembalikan 200 OK dengan konten HTML meta refresh, ubah metode pengalihan ke tingkat server web.