Cara Membuat Redirect PHP tanpa Masalah
Redirect PHP adalah tool yang sangat berguna namun bisa cukup berbahaya jika tidak Anda tidak mengaplikasikannya dengan benar.
Jika sudah mengenal PHP 7.4 dan membaca panduan kami tentang langkah-langkah pembuatan website, Anda pasti tahu bahwa fungsi header() bisa digunakan untuk mengalihkan pengguna ke halaman lain dengan mudah. Meski begitu, fungsi ini ternyata tidak semudah kelihatannya. Dalam panduan ini, kami akan menunjukkan cara membuat redirect PHP tanpa masalah.
Metode Dasar untuk Redirect PHP
Hampir semua panduan akan memberi tahu Anda hal yang sama: cukup gunakan fungsi header() di bagian atas halaman untuk membuat redirect PHP. Untuk melakukannya, gunakan fungsi berikut untuk mengirimkan URL baru:
header('Location: '.$newURL.php);
Fungsi header ini harus ada sebelum Anda meneruskan HTML atau teks apa pun ke browser pengguna, yang berarti harus terletak di bagian atas halaman. Jadi, fungsi ini harus Anda tulis sebelum deklarasi <!DOCTYPE>, sebelum Java, dan sebelum kode PHP apa pun. Fungsi ini kemudian akan mengarahkan pengguna ke URL yang baru.
Meski terlihat mudah, kode yang menyertakan fungsi header() terkadang bisa mengecoh developer dalam hal keamanan. Jadi, mari kita lihat cara menggunakan fungsi ini dengan benar.
Die() dan Exit ()
Setiap kali menggunakan redirect PHP, Anda harus terlebih dulu menggunakan modifier die() atau exit(). Alasannya, crawler dan bot bisa mengabaikan header, sehingga halaman yang Anda kira hanya akan menjadi titik asal redirect ternyata bisa diakses olehnya. Jika alasan Anda menggunakan redirect header adalah untuk melindungi halaman tertentu, sayang sekali, cara ini tidak akan berhasil.
Itulah sebabnya Anda harus menonaktifkan redirect jika diabaikan, yaitu dengan menambahkan die() atau exit() setelah redirect:
header("Location: .$newURL.php"); die();
URL Relative dan Absolute
Selanjutnya mari kita bahas apa itu URL relative dan absolute dalam redirect PHP. Anda bisa menggunakan keduanya dengan RFC 7231, tetapi harus sangat berhati-hati saat menggunakan redirect relative. Sebab, beberapa website builder akan menyusun dan mengganti nama halaman PHP. Artinya, jika Anda menangani PHP melalui website builder, semua redirect yang sudah Anda buat mungkin akan sia-sia.
Sayangnya, belum ada solusi untuk masalah ini selain dengan benar-benar memperhatikan tujuan redirect Anda.
Kode Status
Masalah ketiga dalam redirect PHP standar adalah operator “lokasi” PHP masih menghasilkan kode HTTP 302. Anda tidak boleh membiarkan hal ini karena sejumlah web browser menerapkan kode ini dalam cara yang sangat berlawanan dengan fungsi seharusnya: bukannya benar-benar melakukan redirect PHP, tetapi justru menggunakan perintah GET.
Cara terbaik saat membuat redirect PHP adalah dengan menentukan kode yang ditampilkan. Sayangnya, kode yang harus Anda gunakan masih menjadi perdebatan. HTTP 301 menandakan redirect permanen, yang bisa menimbulkan masalah saat Anda memulihkan halaman asli. Beberapa browser memahami HTTP 303 sebagai “hal lain”, dan hal ini bisa menyebabkan masalah saat mengindeks halaman Anda di mesin pencari.
Dalam praktiknya, dan sampai ada solusinya, gunakan HTTP 303.
Baca Dokumentasinya
Selain melakukan tindakan pencegahan dasar di atas, Anda juga harus membaca dokumentasi penggunaan redirect PHP sebelum memublikasikannya. Baca panduan PHP agar Anda yakin sudah memahami semua langkah yang harus Anda lakukan, juga baca dokumentasi W3C untuk memastikan Anda mengikuti praktik terbaik.
Selagi mempelajari hal-hal yang perlu dipahami, pastikan Anda juga melindungi website dari kerentanan umum: jika memang harus menggunakan redirect PHP untuk saat ini, sebaiknya audit keamanan situs Anda.
Metode Lainnya
Dengan semua masalah ini, Anda mungkin penasaran mengapa Anda harus menggunakan redirect PHP. Itu pertanyaan yang wajar. Cara ini biasanya memang lebih cepat daripada yang lainnya, dan bisa membantu meningkatkan kecepatan website. Namun, sebenarnya ada opsi lain yang tersedia.
Ada dua metode utama untuk hal ini. Anda bisa menggunakan elemen <meta> HTML untuk membuat redirect dari bagian HTML halaman, atau menggunakan JavaScript. Metode pertama, yaitu menggunakan <meta>, akan terlihat seperti ini:
<meta http-equiv="refresh" content="0;url=newpage.php">
Metode kedua, yaitu menggunakan JavaScript, terlihat lebih elegan dan pastinya tampak lebih profesional:
window.location.replace("http://newpage.php/");
Kedua metode ini akan sedikit lebih lambat daripada redirect header() langsung, tetapi jauh lebih fleksibel.
Kesimpulan
Mengikuti langkah di atas memang bisa memastikan redirect PHP Anda cukup aman, tapi jika akan menggunakannya beberapa kali, sebaiknya pikirkan ulang struktur situs Anda.
Ada banyak alasan bagus untuk melakukannya. Pertama, tidak semua host web dibuat sama. Jika semua pengunjung diarahkan ke rute yang cukup rumit di situs Anda, performanya juga akan terpengaruh. Ini bisa ditingkatkan secara cukup baik menggunakan layanan hosting cloud Indonesia meskipun masih ada batasannya.
Alasan kedua, halaman yang menjadi titik asal redirect mungkin saja mengumpulkan data pengunjung tanpa Anda ketahui, khususnya jika Anda menggunakan software analitik web untuk memantau performa situs. Setelah diberlakukannya GDPR, konsekuensi masalah ini mungkin akan cukup berat.
Jadi, kesimpulannya, cermatlah mengenai redirect PHP, gunakan dengan baik, dan hanya gunakan jika memang Anda harus menggunakannya.