Mevcut cevapları artı benim kendi iki kuruş Özeti:
1. Basic answer
Sen yeni bir HTTP başlığı göndermek için header () işlevini kullanabilirsiniz, ancak bu herhangi bir HTML veya metin önce tarayıcıya gönderilen (yani <!DOCTYPE ...>
ilanından önce, örneğin) gerekmektedir.
header('Location: '.$newURL);
2. Important details
die()
header("Location: myOtherPage.php");
die();
Neden kullanmalıyım die()
: The Daily WTF
Absolute URL
URL mutlak olması gerekir. Bkz RFC 2616. Ancak çoğu durumda göreli bir URL de kabul edilecektir.
Status Codes
PHP'nin "Yer"-header hala HTTP 302-yönlendirme kodu kullanır, ama bu kullanmanız gereken biri değil. Sen 301 (kalıcı yönlendirme) veya 303 (diğer) ya da düşünmelisiniz.
Not:.. W3C mentions 303-header çok pre-HTTP/1.1 kullanıcı ajanları "ile uyumsuz olduğunu şu anda kullanılan tarayıcıların tüm HTTP/1.1 kullanıcı ajanlar Bu örümcekler gibi diğer birçok kullanıcı aracıları için doğru değildir ve robotlar.
3. Documentation
PHP HTTP Başlıkları ve header () fonksiyonu
4. Alternatives
Sen http_redirect ($ url) alternatif yöntemi kullanabilir; ki PECL package pecl monte edilmesi gerekmektedir.
5. Helper Functions
Bu fonksiyon, 303 durum kodu dahil değildir:
function Redirect($url, $permanent = false)
{
header('Location: ' . $url, true, $permanent ? 301 : 302);
exit();
}
Redirect('http://www.google.com/', false);
Bu daha esnektir:
function redirect($url, $statusCode = 303)
{
header('Location: ' . $url, true, $statusCode);
die();
}
6. Workaround
Şey yazılır önce belirtildiği başlık olarak () sadece iş yönlendirir. invoked inmidst HTML çıkış ise genellikle başarısız. : Sonra bir HTML başlığı geçici çözüm (! Çok profesyonel değil) gibi kullanabilirsiniz
<meta http-equiv="Location" content="http://example.com/">
Ya da bir JavaScript hatta yönlendirmek.