Nasıl PHP bir yönlendirme yapmak için?
PHP kullanarak farklı bir sayfa için bir kullanıcı yönlendirmek mümkün mü?
Kullanıcı www.example.com/page.php
gider www.example.com/index.php
nasıl yani bir meta yenileme kullanmadan yapayım? onları yönlendirmek istiyorum diyelim Mümkün mü?
Bu yetkisiz kullanıcılardan sayfaları korumak.
CEVAP
Varolan cevaplar artı kendi fikrimi söyleyeyim özeti:
1. Temel cevap
Kullanabilirsiniz header() fonksiyonu gönderme yeni bir HTTP Başlığı, ama bu olmalı gönderilen tarayıcı önce herhangi bir HTML veya metin (yani önce <!DOCTYPE ...>
beyan, örneğin).
header('Location: '.$newURL);
2. Önemli detaylar
() ölür
header("Location: http://example.com/myOtherPage.php");
die();
die()
kullanmak gerekir mi?: The Daily WTF
Mutlak URL
URL mutlak olmalıdır. RFC 2616 bkz. Ama çoğu durumda, göreli bir URL de kabul edilecektir.
Durum Kodları
PHP "Konum"Başlığı hala HTTP 302-yönlendirme kodu kullanır, ama bu kullanmanız gereken kişi değil. Ya 301 (kalıcı yönlendirme) veya 303 () diğer düşünmelisiniz.
Not: 303-Başlık ile uyumsuz W3C mentions "çok önceden HTTP/1.1 kullanıcı arayüzleri. Şu anda kullanılan tarayıcıların/1.1 kullanıcı arayüzleri HTTP. Bu örümcekler ve robotlar gibi diğer birçok kullanıcı arayüzleri için doğru değildir.
3. Belgeler
HTTP Başlıkları ve Başlığı() PHP işlevi
4. Alternatifleri
PECL package pecl kurulması gerekir http_redirect alternatif yöntem($url); kullanabilirsiniz.
5. Yardımcı İşlevler
Bu işlev, 303 durum kodu dahil değil:
function Redirect($url, $permanent = false)
{
header('Location: ' . $url, true, $permanent ? 301 : 302);
exit();
}
Redirect('http://example.com/', false);
Bu daha esnek
function redirect($url, $statusCode = 303)
{
header('Location: ' . $url, true, $statusCode);
die();
}
6. Geçici çözüm
Başlık belirtildiği gibi) yönlendirir bir şey yazılır önce. Genellikle invoked inmidst HTML çıkış başarısız. HTML başlık geçici bir çözüm (çok profesyonel!) kullanabilirsiniz sonra gibi:
<meta http-equiv="Location" content="http://example.com/">
Veya Javascript yönlendirme bile.
Nasıl div içeriğini daha büyük değil y...
Nasıl dava Vim / küçük harf duyarlı ar...
Nasıl jQuery Ajax çağrısından sonra bi...
Nasıl twitter bootstrap menü hover yer...
Sekmeler arasında geçiş yapmak için na...