PHP: Mengalihkan (Redirect) ke Halaman Lain

Ajukan pertanyaan
Sebagai seorang webmaster, Anda mungkin berhadapan dengan situasi di mana file-file Anda memiliki nama yang kurang tepat, atau Anda ingin mengubah nama direktori file. Jika demikian, cukup mudah untuk mengubah link dalam situs web Anda.

Saat mengubah lokasi halaman, mesin pencarian mungkin akan mengirim pengguna ke alamat halaman yang salah. Bahkan akibat yang lebih buruk, sistem SEO halaman juga mungkin akan berubah. Untungnya, ada solusi mudah yang menggunakan redirection atau pengalihan halaman, yang tidak akan mengubah konsistensi navigasi halaman dan SEO situs web Anda—bahkan jika semua file situs webtelah dipindah.



Mengalihkan Headers

Pengalihan Sederhana

Untuk mengalihkan pengunjung ke halaman lain (khususnya berguna dalam penggunaan loop), cukup gunakan kode berikut:

<?php    
header('Location: mypage.php');
?>

Pada kasus ini, mypage.php adalah alamat situs web yang ingin Anda tujukan pada pengguna. Alamat ini dapat bersifat absolut dan mungkin juga dilengkapi dengan parameter dalam format berikut: mypage.php?param1=val1¶m2=val2)

Alamat Halaman Relatif/Absolut

Saat menggunakan alamat halaman relatif atau absolut, Anda disarankan memilih alamat halaman absolut dari direktori root server (DOCUMENT_ROOT). Gunakan format berikut ini:

<?php    
header('Location: /directory/mypage.php');
?>

Jika halaman yang akan menjadi target pengalihan berada di server lain, Anda mungkin perlu memasukkan URL lengkapnya:

<?php    
header('Location: http://www.ccm.net/forum/');
?>

HTTP Header

Menurut protokol HTTP, Header HTTP harus diletakkan sebelum sebelum jenis konten apa saja yang berada dalam halaman situs web. Artinya, seharusnya tidak ada karakter apa pun yang diletakkan sebelum Header—bahkan untuk satu spasi pun!

Untuk informasi selengkapnya, silakan baca artikel kami mengenai bagaimana cara mengatur Header (dalam bahasa Inggris).

Pengalihan Sementara/Permanen

Pada umumnya, jenis pengalihan yang dicontohkan di atas adalah pengalihan untuk sementara. Ini artinya bahwa mesin pencarian, seperti Google, tidak akan mengindeks halaman pengalihan.

Jika Anda ingin memberi tahu mesin pencarian bahwa situs web Anda telah dipindah secara permanen ke lokasi lain, silakan pakai kode berikut:

<?    
header('Status: 301 Moved Permanently', false, 301);
header('Location: new_address');
?>

Sebagai contoh, halaman ini menggunakan kode berikut:

<?      
header('Status: 301 Moved Permanently', false, 301);
header('Location: /pc/imprimante.php3');
exit();
?>

Jika Anda mengklik pada tautan di atas, Anda akan dialihkan ke halaman ini secara otomatis, karena telah menggunakan pengalihan secara permanen (Status: 301 Moved Permanently). Jadi, jika Anda mengetik alamat URL pertama di Google, Anda akan dialihkan secara otomatis ke alamat URL kedua.

Intepretasi dari Kode PHP

Kode PHP yang terletak setelah header() akan diintepretasikan oleh server, bahkan jika pengunjung berpindah ke alamat spesifik. Pada kebanyakan kasus, ini artinya Anda perlu menggunakan metode untuk mengikuti fungsi header() dan exit() untuk mengurangi beban loading server:

<?    
header('Status: 301 Moved Permanently', false, 301);
header('Location: address');
exit();
?>

Image: © PHP.

Cara Mengatasi Undefined Index Error Ketika Menggunakan Variabel PHP
Cara Mengatasi Undefined Index Error Ketika Menggunakan Variabel PHP