.htaccess seo dostu url
Merhaba,
Aşağıdaki url adresi .htaccess ile nasıl yapabilirim?
https://blog.getbootstrap.com/2022/01/31/bootstrap-icons-1-8-0/
Gelen tüm istekleri .htaccess dosyası yardımıyla index.php dosyanıza yönlendirin.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Burada, siteye gelen tüm istekleri index.php dosyasına yönlendirdik ve url'nin geri kalanını da get parametresi olarak url
key'ine atadık. Şimdi index.php dosyasında gelen url'yi alabiliriz. Gelen url değerinin ne olduğunu kendinize göre sorgulayabilir ve hangi sayfanın istendiğini kendi algoritmanıza göre anlayıp sayfayı include
edebilirsiniz.
Örnek olarak aşağıdaki örnekte gelen url isteğini alıp "/" karakterlerinden parçalıyorum. Eğer hiç değer gelmemişse varsayılan değer olarak "anasayfa" diyorum. Aksi halde 4 adet değer dönmesini zorunlu tutuyorum: 3'ü tarih 1'i makale başlığı. Sonra da ilgili sayfayı include
ediyorum.
// index.php dosyanız
define('ROOT_URL', (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'].'/');
$urlLink = isset($_GET["url"]) ? mb_strtolower($_GET["url"], 'UTF-8') : 'anasayfa';
$urlLink = trim($urlLink, "/\t\r\0\x08");
if($urlLink == 'anasayfa') {
include("anasayfa.php");
exit();
}
$urlLink = explode("/", $urlLink);
$urlLinkCount = count($urlLink);
if($urlLinkCount !== 4) {
include("404.php");
exit();
}
echo 'Şu makaleye ulaşmaya çalışıyorsunuz: '.$urlLink[3].'<br>';
echo 'Tarih: '.$urlLink[2].'.'.$urlLink[1].'.'.$urlLink[0].'<br>';
echo 'Bu makaleyi bulup size getireceğim...';
exit();
Bu şekilde if-else
yapılarıyla sayfa yönlendirmelerinizi yapabilirsiniz. Elbette kodun çokça geliştirilmesi lazım ama her şeyi burada anlatmam mümkün değil. "seo dostu url php" gibi bir arama yapıp daha detaylı makaleler/videolar bulabilirsiniz.