PHP: Cara Redirect Halaman

Cara redirect halaman atau mengalihkan halaman menggunakan PHP sangatlah mudah. Salah satunya adalah dengan menggunakan fungsi header(). Paling tidak itu yang paling simple dan paling banyak digunakan untuk pengalihan halaman yang sederhana.

Secara default, pengalihan halaman menggunakan fungsi header() pada PHP akan mengisyaratkan status header 302. Artinya adalah pengalihan bersifat sementara. Jika ingin menandai bahwa halaman bersangkutan dialihkan seacara permanen maka perlu menambahkan 301 pada argumen ketiga fungsi header().

Contoh Pengalihan Halaman

Contoh pengalihan halaman menggunakan menggunakan PHP adalah sebagai berikut:

header('Location: '.$urlTujuan);

Atau

header('Location: https://nusagates.com');

Tips Pengalihan Halaman

Masalah klasik developer PHP adalah membiarkan dapur bekerja sangat berat diakrenakan mindsetnya yang penting aplikasi jadi dan bisa digunakan tanpa memikirkan performa di balik layar. Salah satunya adalah ketika mengalihkan halaman menggunakan fungsi header seperti ini tanpa memerintah PHP berhenti memroses kodingan setelah baris tersebut.

Pada kasus ini, solusinya adalah jangan sampai lupakan die() atau exit() setelah mendeklarasikan pengalihan halaman. Contoh:

header('Location: https://nusagates.com');
exit();

Dengan begitu, PHP akan berhenti memroses atau mengeksekusi kodingan-kodingan setelahnya. hal ini akan sangat menjaga performa aplikasi.

Pengalihan Halaman Secara Permanen

Untuk kebutuhan SEO, terkadang, kita perlu memberitahu crawler bahwa halaman bersangkutan telah dialihkan secara permanen. Misalnya karena halaman telah dihapus atau urlnya berubah. hal ini dapat dilakukan pula menggunakan fungsi header() seperti cara di atas.

Contoh penggunaannya adalah sebagai berikut:

header('Location: https://nusagates.com', true, 301);
exit();

Pada contoh di atas terdapat dua parameter tambahan yaitu:

  • Parameter kedua untuk memerintahkan php mengganti (replace) header PHP yang mirip dengannya. Bukan membuat header baru.
  • parameter ketiga adalah kode response header PHP. 301 menunjukkan bahwa halaman dialihkan secara permanen

Fungsi Pengalihan Halaman

Agar lebih ringkas dan dapat digunakan ulang, kita bisa membungkus pengalihan halaman tersebut dalam sebuah fungsi ringkas seperti berikut:

function redirect($url, $responseCode = 302)
{
   header('Location: ' . $url, true, $responseCode);
   die();
}

Pada fungsi di atas dapat dilihat memiliki 2 buah argumen yaitu:

  1. $url adalah alamat atau url tujuan pengalihan halaman
  2. $responseCode digunakan untuk menandai kode header yang digunakan. Defaultnya adalah 301.

Contoh penggunaannya adalah sebagi berikut:

redirect('https://nusagates.com')

pada contoh diatas, halaman akan dialihkan ke https://nusagates.com dengan status header 301 atau sementara. Jika ingin mengubah menjadi permanen atau lainnya maka argumen kedua harus diisi. Contoh mengalihkan halaman secara permanen adalah sebagai berikut:

redirect('https://nusagates.com', 301)