PHP kullanarak bir kullanıcıyı farklı bir sayfaya yönlendirmek mümkün müdür?
Diyelim ki kullanıcı www.example.com/page.php
adresine gitti ve ben onu www.example.com/index.php
adresine yönlendirmek istiyorum, bunu bir meta yenileme kullanmadan nasıl yapabilirim? Bu mümkün mü?
Bu, sayfalarımı yetkisiz kullanıcılardan bile koruyabilir.
Bir HTTP Location
başlığı göndermek için header()
fonksiyonunu kullanın:
header('Location: '.$newURL);
Bazılarının düşündüğünün aksine, die()
nin yeniden yönlendirme ile hiçbir ilgisi yoktur. Yalnızca normal yürütme yerine yönlendirme yapmak istiyorsanız kullanın.
Dosya example.php:
<?php
header('Location: static.html');
$fh = fopen('/tmp/track.txt', 'a');
fwrite($fh, $_SERVER['REMOTE_ADDR'] . ' ' . date('c') . "\n");
fclose($fh);
?>
Üç infazın sonucu:
bart@hal9k:~> cat /tmp/track.txt
127.0.0.1 2009-04-21T09:50:02+02:00
127.0.0.1 2009-04-21T09:50:05+02:00
127.0.0.1 2009-04-21T09:50:08+02:00
Resuming — zorunlu die()
/exit()
gerçek PHP ile ilgisi olmayan bir şehir efsanesidir. İstemcinin Location:
başlığına "saygı duyması" ile hiçbir ilgisi yoktur. Bir başlık göndermek, kullanılan istemciden bağımsız olarak PHP yürütmesini durdurmaz.
function Redirect($url, $permanent = false)
{
if (headers_sent() === false)
{
header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
}
exit();
}
Redirect('http://www.google.com/', false);
die()/exit() yapmayı unutmayın!