PHP'de nasıl yönlendirme yapabilirim?

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.

Yorumlar (4)
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!

Yorumlar (12)

header( 'Location: http://www.yoursite.com/new_page.html' );

Yorumlar (1)