Htaccess ile dosya engelleme istekte dosyaları ulaşılmaz hale getirir, örneğin Sayfanın ziyaretçi. Yani dosyaları ziyaretçinin isteği geçmek için bir proxy dosyasına ihtiyacınız var. Bunun için, MVC pattern bir göz ve Front Controller pattern var.
Temelde, ne yapmak isteyeceğiniz route all requests to a single point of entry, eg index.php ve isteği işlemek için denir eylem (betiklerinizin), oradan karar. (Bazı paylaşılan ana) imkansız ise zaten o (ALL inkar) yokmuş gibi Sonra place your scripts and templates outside the publicly accessible folder ya, Htaccess ile klasörleri korumak olabilir.
Eğer gibi bir URL olurdu yükleme komut dosyasını kullanmak için http://example.com/index.php?action=upload
.
Bir supersimple FrontController kadar kolaydır
$scriptPath = 'path/to/your/scripts/directory/';
$defaultAction = 'action404.php';
$requestedAction = $_GET['action']; // you might want to sanitize this
switch($action) {
case 'upload':
$actionScript = 'image.php';
break;
case 'login':
$actionScript = 'login.php';
break;
default:
$actionScript = $defaultAction;
}
include $scriptPath . $actionScript;
exit;
Eğer gerekli gördükleri her türlü - ActionScript sonra vb yönlendirme, db erişim, kimlik doğrulama, yükleme malzeme, şablonlar render dahil olmak isteği ile yapmak için gereken her şeyi yapardı. Yukarıdaki örnekte varsayılan eylem bu gibi görünebilir:
<?php // action404.php
header('HTTP/1.1 404 File Not Found');
fpassthru('path/to/template/directory/error404.html');
Orada numerous implementations of the FrontController pattern in PHP. Bazı basit, bazı karmaşık. CodeIgniter framework Bu sizin için yeni ise çok büyük olmayabilir hafif bir MVC / FrontController uygulamasını kullanır.
Yukarıda önerilen Atlı gibi, mod_rewrite
index.php tüm istekleri zorlamak için ve aynı zamanda oldukça yukarı URL'leri kullanabilirsiniz kullanabilirsiniz. Bu MVC çerçeveler ile yaygın bir uygulama olduğunu ve burada ve başka yerlerde yaygın örtülü olmuştur.