<?php
$routes = [
"/" => "index", // "/" url'i match edildiğinde index.html dosyası çalışacak.
"/index.html" => "index",
"/hakkinda.html" => "hakkinda",
"/urunler.html" => "urunler",
"/iletisim.html" => "iletisim",
"/referanslar.html" => "referanslar",
"/makine-parki.html" => "makine_parkı",
"/kalite-belgeleri.html" => "kalite_belgeleri",
"*" => "404.html" // bu ise url yukarıdakilerden biriyle eşleşmediğinde açılacak sayfadır.
// tüm url'leri istediğiniz gibi değiştirebilirsiniz.
// Array'ın key'i match olacak url, value ise bu url'de çağıracağı sayfadır.
// örnek: "/deneme" => "deneme",
// isterseniz ingilizce route da tanımlayabilirsiniz.
// örnek - "/products" => "urunler"
// fakat html-based bir sayfa yönetimi yaptığımız için ayrı bir dosya oluşturmak gerekebilir.
// çünkü header gibi bir componente tek sayfada "/contact" türkçesi için de "/iletisim" aynı anda olmaz.
// en azından .html'i php'ye çevirmediğiniz sürece.
];
function requestURI(){
$dirname = dirname($_SERVER['SCRIPT_NAME']);
$basename = basename($_SERVER['SCRIPT_NAME']);
$dirname = $dirname !== '/' ? $dirname : '';
$uri = str_replace([$dirname, $basename], '', $_SERVER['REQUEST_URI']);
return $uri;
}
function callFileByURI($routes) {
$uri = requestURI();
if (array_key_exists($uri, $routes)) {
$file = $routes[$uri] . '.html';
if (file_exists($file)) {
require __DIR__ . "/$file";
return;
}
}
// Eğer eşleşme yoksa veya dosya bulunamazsa 404'ü yükle
$errorPage = __DIR__ . "/" . $routes["*"];
if(file_exists($errorPage)){
require $errorPage;
return;
}
die("404 Not Found");
}
// Çalıştır
callFileByURI($routes);