Cara Redirect PHP Header Location: Sintaks dan Praktik Terbaik

Implementasi Redirect PHP Header

Fungsi header('Location: ...') adalah metode standar dalam PHP untuk mengarahkan (redirect) browser pengguna ke URL lain. Eksekusi ini harus dilakukan sebelum ada output HTML apa pun (termasuk spasi atau baris baru) dikirim ke browser, karena header HTTP harus dikirim sebelum konten isi.

Sintaks Dasar

<?php
// Redirect ke halaman lain
header('Location: https://www.contoh.com/halaman-tujuan.php');

// Penting: Hentikan eksekusi skrip setelah redirect
exit;
?>

Tabel Perbandingan Metode Redirect

MetodeKecepatanSEO FriendlyKeterangan
PHP Header (302)Sangat CepatTidak (Default)Redirect sementara standar.
PHP Header (301)Sangat CepatYaRedirect permanen, meneruskan link juice.
HTML Meta RefreshLambatTidakBergantung pada rendering browser.
JavaScriptLambatTidakBergantung pada eksekusi JS klien.

Langkah Teknis dan Troubleshooting

Masalah paling umum adalah error Headers already sent. Berikut adalah langkah untuk mengatasinya:

  1. Pastikan tidak ada output: Jangan gunakan echo, print, atau tag HTML sebelum fungsi header().
  2. Gunakan Output Buffering: Aktifkan ob_start() di baris pertama skrip PHP Anda untuk menampung output sementara.
  3. Gunakan Exit: Selalu sertakan fungsi exit; atau die(); tepat setelah header() untuk mencegah skrip terus berjalan dan mengeksekusi kode berbahaya di bawahnya.
  4. Redirect 301 Permanen: Jika Anda memindahkan halaman secara permanen, gunakan kode status 301 agar mesin pencari memperbarui indeks mereka: header('Location: url-baru.php', true, 301);.

Contoh Implementasi Kondisional

<?php
$user_login = false;

if (!$user_login) {
    header('Location: login.php');
    exit;
}

// Konten halaman hanya untuk user login
echo 'Selamat datang di area member.';
?>

Selalu validasi URL tujuan untuk menghindari celah keamanan Header Injection. Jika URL berasal dari input pengguna, pastikan untuk melakukan sanitasi ketat sebelum memasukkannya ke dalam fungsi header().