v2.5.2
Giriş yap

.htaccess seo dostu url

siyahkalem
376 defa görüntülendi

Merhaba,
Aşağıdaki url adresi .htaccess ile nasıl yapabilirim?

https://blog.getbootstrap.com/2022/01/31/bootstrap-icons-1-8-0/

Cevap yaz
Cevaplar (1)
ebykdrms
745 gün önce

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.