bu .htaccess dosyam :
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?url=$1&%{QUERY_STRING}
bu index sayfam :
$_url = get('url'); #todo:: app/helpers/url
$_url = array_filter(explode('/', $_url));
# eğer url de gelen bir sayfa yoksa ( ilk açılış için ! )
if(!isset($_url[0]))
$_url[0] = 'index';
# eğer çağırılan sayfa klasörde yok ise
if (!file_exists(controller($_url[0])))
$_url[0] = '404';
# sayfayı çağır
require_once(controller($_url[0]));
bu get fonksiyonum :
#url temizleme fonksiyonu
function filterUrl($str){
return htmlspecialchars(trim($str));
}
# get methodu ile gelen veriler almak için
function get($name){
if(isset($_GET[$name])){
if (is_array($_GET[$name])){
return array_map(function($item){
return filterUrl($item);
}, $_GET[$name]);
}
return filterUrl($_GET[$name]);
}
return false;
}
bu controller sayfalarını çağıran fonksiyonum :
# controller sayfalarını çağıralım
function controller($name){
return contdir . '/' . $name . '.php';
};
detaylı anlatımı : LİNK