PHP: sayfaya doğrudan erişimi engellemek

4 Cevap php

Ben kullanıcıların doğrudan erişmek mümkün istemediğiniz bazı sayfaları var.

Ben çalıştığı ile geldi bu işlevi vardır:

function prevent_direct_access()
{
    if($_SERVER['REQUEST_URI'] == $_SERVER['PHP_SELF'])
    {
    	//include_once('404.php');
    	header("Location: 404.php");
    }
}

Bu tam olarak ne istiyorum, URL değişmez yok ama içerik yok. Ben bu bir 404 değil endeksi olduğunu arama motorlarına anlatmak eklemek gereken bir şey var ise, ancak ben merak ediyorum. Ben URL olsa değiştirmek istemiyorum unutmayın.

Teşekkürler!

4 Cevap

Yönlendirmek ancak 404 durum kodunu göndermek yok:

header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
exit;

HTTP durumu 404 dönerseniz arama motorları için, onlar indeksi ben inanmak gerekir. Ama her zaman bir yerde bir robots.txt kapsadığı için yönlendirme olabilir

Sadece netleştirmek için:

  • Eğer sistemde diğer PHP programlar için kullanılabilir olmasını istediğiniz bazı PHP var
  • Kimsenin diğer PHP programlarından birini çalıştırıyorsanız dışında erişmesini istemiyorum

(Yani "doğrudan" "bu sitede başka bir sayfadan bir bağlantıyı izleyerek dışında" anlamına gelmez)

Sadece PHP dosyasını outside Webroot tutun. Bu yolu ilk etapta bir URL olmaz.