Seo uyumlu url yapısı oluşturma .htaccess

İyi günler arkadaşlar php veya başka programlama dillerine yeni başlayan arkadaşlar üzerlerindeki acemilikleri attıktan sonra artık web sitemi nasıl optime edebilirim veya arama motorlarında üst sıralara çıkabilirim gibi konulara bakınmaya başlarlar.Burada artık web dünyasında bir sektör haline gelen seo kavramının en önemli yanı olan seo linkerinden bahsedeceğim ,

Normal bir php dosyasında istediğimiz içeriği bildiğiniz gibi id  ile alıp veritabanından bu ıd ye göre içerik çekeriz

$id = $_GET["id"];
$sorgu = mysql_query("SELECT * FROM veriler Where id='$id'");

Bu yapımızda verdiğimiz linklerde eğer bir seo calısması yapılmamışsa icerik.php?id=20 gibi bir url ile çalışacaktır.Fakat biz verilerimizi daha anlasılır bir url ile çekmek istiyoruz.

Örnek vermek gerekirse siteurl.com/yeni-web-sayfamiz-yayinda

Yapmamız Gerekenler

  • Yazılarımızın başlıklarını özel karakterlerden arındırarak url formatına uygun bir hale getirmek
  • .htaccess dosyamızda gerekli yönlendirmeleri yapmak
  • Yeni linklerimizi yeni seo yapımıza göre vermek

Öncelikle ilk adımımızı yani seo url ye dönüştürülecek fonksiyonumuzu yazıyoruz.Bunu sayfamızda çoğu yerde kullanacağımız için sitenizin heryerine çağrılan bir php dosyasına yazarsanız  istediğiniz zaman kullanabilirsiniz. Örn (config.php veya header.php)

seflink fonksiyonu için tıklayın.

Htaccess Yönlendirmesi

.htacces dosyamızı açıyoruz yok ise yeni bir .htacces olusturuyoruz php dosyalarımızın olduğu dizine
Dosyamızın içine girdikten sonra

RewriteEngine on
 
# Yeni bir yönlendirme kuralı ekliyoruz
RewriteRule ^([0-9a-zA-Z-_]+)/([0-9]+)$  posts.php?sef=$1&id=$2 [L,QSA]
Açıklamalar

posts.php = içerikleri id ye göre aldığımız php dosyamız
sef = seo link yapımızın geldiği ara değişken
id = posts.php de veri çektiğimiz id parametresi

([0-9a-zA-Z-_]+) = seo linkimiz bu kısma yerleşecek a-z arası 0-9 arası ve – karakterleri (sef)
([0-9]+) = post.php de kullandığımız id değeri buraya gelicek

[L] = url uyuştuğu an keser bunun anlamı şu örneğin siteurl.com/merhaba burada merhaba bizim url miz fakat [L] koymaz isek merhabaads gibi bir url yide aynı sayfaya yönlendirecek bazen hatalar olabilir o yüzden [L ] koyuoruz uyuştuğu an kesiyor devam ettirmiyor

[QSA] = Bu GET ile gösterilen verilerin aktif olmasını sağlar yani örnekte sef=$1&id=$2
Bazı configlerde koymaya gerek yokken bazı web server configlerinde koymayı gerektir biz öncelik olarak ekleyelim

<a href="<?=seo($veri["yazi_baslik"]).'/'.$veri["yazi_id"]?>"> <?=$veri["yazi_baslik"]?> </a>

Diğer Htaccess Ayarları

.html ile biten url ler: rewriterule mizde sol kısımdaki $ dan önce .html koymamız yeterli

Kategoriye göre getirmek : rewriteruleye bir parametre daha vermelisiniz ,

RewriteRule ^([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)/([0-9]+)$  posts.php?kat=$1&sef=$2&id=$3 [L,QSA]

Farklı tablolardan farklı veriler için, Örneğin
haberler tablosundan , haberler/haber1/1
fotogaleri tablosundan , fotogaleri/fotohaber1/1

RewriteRule ^haberler/([0-9a-zA-Z-_]+)/([0-9]+)$ haber.php?sef=$1&id=$2 [L,QSA]
RewriteRule ^galeriler/([0-9a-zA-Z-_]+)/([0-9]+)$ galeri.php?sef=$1&id=$2 [L,QSA]

Olası Bozukluk ve Hatalar

En önemli sorunlardan biri sitenizin statik dosyalarının yönlendirmeden etkilenmesi (css,js,img gibi dosyalar)

1. Sitenizin head tagları arasına base href ekleyin

<base href="siteurl.com/" />

2.Htaccess yapılandırması Rewrite kuralızdan hemen önce bu kodu ekleyin

RewriteCond %{REQUEST_FILENAME} !-f

3.Htaccess şartlandırması belirli klasörlere dokunulmasın

RewriteCond $1 !^(css|js|images|inc|lang)

 

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

2 thoughts on “Seo uyumlu url yapısı oluşturma .htaccess

  1. Merhaba bir kac gundur sikinti yasadigim bir konu var yardimci olabilirseniz sevinirim

    link rel alternate olayinda sayfada gelmesi gereken linkler ile ilgili, sitem https:www.transfer4cheap.com 3 dil aktif turkce ingilizce ve almanca yani /tr, /en ve /de

    Ornegin /en/airport-transfers diye bir sayfamiz var bu sayfa load oldugunda link rel alternate lerde bu sayfanin diger dillerdeki linklerini cekip gostermem gerek tabi bu dinamik sayfalar icinde gecerli, yani

    yine ornegin bu sayfanin almanca linki /de/flug-haven-transfers iste ben bu linki link rel alternate kisminda nasil ve hangi kodla getirebilirim ki ingilizce load olmus sayfanin icindede link rel alternate donus linki olarak gorunsun ? Umarim derdimi anlatabilmisimdir, simdiden tesekkur ederim

  2. Merhaba ,hocam URL kısmında id göstermek istemiyorum bunu nasıl yapabilirim. Post olarak iş gonderiyorum ancak veriler gelmiyor

Bir yanıt yazın

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