× Daha fazlası İçin Aşağı Kaydır
☰ Kategoriler

Sef Link İçin .htaccess Kodları

Arkadaşlar selamlar,

Sitelerde kullanılan sef link yapısının önemi bilmeyen yoktur. Genelde wordpress kullanan arkadaşların bu kodlara pek ihtiyacı olmaz ancak dışarıya yaptığımız projelerde wordpress kullanmadığımız için çok fazla ihtiyaç duymaktayız.

Bu yazımda sizlerle ilgili php fonksiyonunu ve örnek .htaccess kodlarını paylaşacağım. Bu sayede wordpress tarzı link yapısına sahip olacaksınız. Unutmayın SEO‘nun vazgeçilmesi Sef Link‘tir. Takıldığınız bir kısım olduğunda çekinmeden yorum yapabilirsiniz.

Malum linklerimizde Türkçe karakter, özel karakter, boşluk vs kullanamayacağımız için öncelikle linklerimizi bunlardan kurtaralım;

12345678910111213function seflink($text){ $find = array(“/Ğ/”,”/Ü/”,”/Ş/”,”/İ/”,”/Ö/”,”/Ç/”,”/ğ/”,”/ü/”,”/ş/”,”/ı/”,”/ö/”,”/ç/”); $degis = array(“G”,”U”,”S”,”I”,”O”,”C”,”g”,”u”,”s”,”i”,”o”,”c”); $text = preg_replace(“/[^0-9a-zA-ZÄzÜŞİÖÇğüşıöç]/”,” “,$text); $text = preg_replace($find,$degis,$text); $text = preg_replace(“/ +/”,” “,$text); $text = preg_replace(“/ /”,”-“,$text); $text = preg_replace(“/\s/”,””,$text); $text = strtolower($text); $text = preg_replace(“/^-/”,””,$text); $text = preg_replace(“/-$/”,””,$text); return $text;}

Türkçe ve özel karakterlerden kurtulduğumuza göre artık .htaccess kodlarımızı yazmaya başlayalım.

12345678910111213141516171819Options +FollowSymLinksRewriteEngine OnRewriteRule ^admin/$ admin/index.php [L,QSA]RewriteRule ^iletisim/$ sayfalar/iletisim.php [L,QSA]RewriteRule ^referanslar/$ sayfalar/referanslar.php [L,QSA]RewriteRule ^haberler/$ sayfalar/haberler.php [L,QSA]RewriteRule ^egitimler/$ sayfalar/egitimler.php [L,QSA]RewriteRule ^kurumsal/$ sayfalar/kurumsal.php [L,QSA]RewriteRule ^([a-zA-Z0-9_-]+)/$ sayfalar/sayfa-goruntule.php?sef=$1 [L,QSA]RewriteRule ^kurumsal/([a-zA-Z0-9_-]+)/$ kurumsal-goruntule.php?sef=$1 [L,QSA]RewriteRule ^egitim/([a-zA-Z0-9_-]+)/$ egitim-goruntule.php?sef=$1 [L,QSA]RewriteRule ^haber/([a-zA-Z0-9_-]+)/$ haber-goruntule.php?sef=$1 [L,QSA]RewriteRule ^kategori/([a-zA-Z0-9_-]+)/$ kategori-goruntule.php?sef=$1 [L,QSA]RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ icerik-goruntule.php?sef=$2 [L,QSA]

.htaccess dosyasını kullanılabilir kılmak için öncelikle RewriteEngine On yapıyoruz.

Şimdi satırları tek tek incelemek gerekirse;

RewriteRule ^admin/$ admin/index.php [L,QSA] // tarayıcı adres satırına siteadresiniz.com/admin yazıldığımda normalde admin klasörünün içindeki index.php dosyası çağrılacak.

RewriteRule ^referanslar/$ sayfalar/referanslar.php [L,QSA] // yine adres satırına siteadresiniz.com/referanslar yazıldığında sayfalar klasöründe bulunan referanslar.php dosyası çağrılmış olacak.

Peki dinamik sayfalar ? Onun da çözümü var.

RewriteRule ^([a-zA-Z0-9_-]+)/$ sayfalar/sayfa-goruntule.php?sef=$1 [L,QSA] // kurduğunuz yapıya bağlı olarak dinamik olarak oluşturduğunuz her sayfayı yine sayfalar klasörü içindeki sayfa-goruntule.php üzerinden ziyaretçilerinize gösterebilirsiniz. Kullandığınız veritabanında ilgili alanları oluşturmanız ve sayfa-goruntule.php?sef=$1 şeklinde parametre göndermeniz yeterli olacaktır.

İsterseniz kategorilere göre ayrı sayfalar tasarlar ve görüntülenmesini sağlayabilirsiniz. Örneğin haber kategorisi için özelleştirilmiş farklı tasarıma ya da içeriğe sahip bir sayfa kullanmak isterseniz RewriteRule ^haber/([a-zA-Z0-9_-]+)/$ haber-goruntule.php?sef=$1 [L,QSA] ana dizinde bulunan haber-goruntule.php dosyası üzerinden gidebilirsiniz.

Kategori ve etiket yapısı da mümkün.

Dinamik yapılarda kategori ve etiket yapıları neredeyse olmazsa olmaz.

RewriteRule ^kategori/([a-zA-Z0-9_-]+)/$ kategori-goruntule.php?sef=$1 [L,QSA] satırı ile kategorilerinizi aynı wordpress mantığında olduğu gibi görüntüleme şansına sahipsiniz.

En önemli kısım ise kategorilere bağlı yazılarınızı nasıl görüntüleyeceğiniz. Yani siteadresiniz.com/yazikategorisi/ne-hakkinda-yaziyorsan-artik/ şeklinde yapıları da bu yapı ile mümkün. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ icerik-goruntule.php?sef=$2 [L,QSA] satırı ile kurduğunuz yapıda bahsettiğim link yapısını kullanabilirsiniz.

Yukarıdaki kodları çok uzun zamandır kullanmaktayım. Zamanında araştırıp bulup geliştirdim. Güle güle kullanın.

Bir sonraki yazıda görüşmek üzere.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir