Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

ID göstermeden oluşturulan linkler?

desoLate

0
Onaylı Üye
Üye
Katılım
14 Haziran 2006
Mesajlar
220
Açılan Konu
23
Tepki puanı
0
Normalde seo linkler oluşturmak için, bir php sayfada id ve icerik ismini linkte geçirip sonra .htaccess ile rewrite ediyoruz.

Örnek:
HTML:
RewriteRule ^(.*)-(.*).html$ /sayfa.php?id=$2&cat=$1

ID görünmeden sadece icerik ismini linkte göstermeyi nasıl yapabiliriz? ID yerine icerik ismiyle veritabanında arama yaptırarak gösterebiliriz. Fakat, aynı isimle veritabanında başka bir(kaç) kayıt daha varsa o zaman işler biraz karışıyor :) Anlatmak istediğimi umarım anlatabilmişimdir.

Böyle bir rewrite düzeni oluşturmak mümkün müdür? Mümkünse, çalışma mantığı nasıl olur? Değilse, neden değildir?

Fikirlerinizi söylerseniz mutlu olurum :)
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
Normalde seo linkler oluşturmak için, bir php sayfada id ve icerik ismini linkte geçirip sonra .htaccess ile rewrite ediyoruz.

Örnek:
HTML:
RewriteRule ^(.*)-(.*).html$ /sayfa.php?id=$2&cat=$1

ID görünmeden sadece icerik ismini linkte göstermeyi nasıl yapabiliriz? ID yerine icerik ismiyle veritabanında arama yaptırarak gösterebiliriz. Fakat, aynı isimle veritabanında başka bir(kaç) kayıt daha varsa o zaman işler biraz karışıyor :) Anlatmak istediğimi umarım anlatabilmişimdir.

Böyle bir rewrite düzeni oluşturmak mümkün müdür? Mümkünse, çalışma mantığı nasıl olur? Değilse, neden değildir?

Fikirlerinizi söylerseniz mutlu olurum :)


mantığınız doğru, buna ancak şu şekilde bir çözüm getirebiliriz.

İçeriğimizin başlığı: "Türkiye, potada Fransa`yla karşı karşıya" olsun. Biz bu başlıklı içeriği veritabanımıza kaydederken veritabınımızda baslikseo diye bir bölüm oluştururuz ve "Turkiye-potada-fransayla-karsi-karsiya" şeklinde de bir kayıt da otomatik olarak oluştururuz. Yani bu baslikseo bizim "id" bölümümüzü oluşturur ve veri tabanında veriyi çekerken bu id'e göre baslikseo'dan çekeriz.

Ve aynı başlıklı bir içerik daha eklerken, baslikseo'da aynı içeriğin olup olmadığını kotrol ettiririz. Eğer aynısı varsa baslikseo'ya bu yazının "Turkiye-potada-fransayla-karsi-karsiya" sonuna sayı eklettiriz "Turkiye-potada-fransayla-karsi-karsiya-1" gibi. Bu şekilde bir çözüm olur.

Basit if else uygulamaları ile bunun gerçekleşmesini sağlayabiliriz.



Dipnot: Yukarıda kullandığınız yöntem yerine

RewriteRule ^(.*)-(.*).html$ /sayfa.php?id=$1&cat=$2

şeklinde kullanarak rakam olan bölümü .html'den önceye almanız bence seo açısında daha faydalı bir yaklaşım olur. Şahsi görüşümüdür.
 

desoLate

0
Onaylı Üye
Üye
Katılım
14 Haziran 2006
Mesajlar
220
Açılan Konu
23
Tepki puanı
0
Cevabınız için teşekkür ederim öncelikle.

Tabloda oluşturulacak baslikseo alanıyla çekmeyi bende düşündüm. Fakat, sondaki rakam biraz canımı sıktı :) Yani, başlığı bir kere kontrol ettirdik diyelim ve var olduğu ortaya çıktı ve biz sonuna 1 ekledik. Fakat aynı konu başlığına sahip baya bir içerik çıkarsa o zaman sondaki rakam karmaşasını nasıl düzenleyebileceğimiz konusunda tıkandım.

Ayriyetten, tabloda baslikseo alanına indeks atasak bile, id ile veriyi çektiğimizden daha fazla performans kaybı yaşar mıyız konusu kafama takılıyor.

Son olarakda;
"RewriteRule ^(.*)-(.*).html$ /sayfa.php?id=$1&cat=$2

şeklinde kullanarak rakam olan bölümü .html'den önceye almanız bence seo açısında daha faydalı bir yaklaşım olur." demişsiniz. Sizce, neden daha faydalı olur? Biraz açıklarsanız sevinirim.
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
O sonuna 1 koyma olayını elle yapmayacaksınız zaten. Yapacağınız kodlama ile oraya kendisi gene baslikseo'da olmayan bir sonucu çıkartacak şekilde bir değer atayacak. Bunun üzerinde biraz araştırma yaparsanız eminimki php olarak doğru kodlamayı bulabilirsiniz.

Tabi sayı olarak aramakla bir farkı olacaktır. Ama ziyaretçi sayınız ahım şahım bir değerde değilse pek bir sorun olacağını sanmıyorum. Bu konuda gerçi fazla tecrübem yok.

Diğer sayı olayına gelince. Açıkçası size tam bir cevap veremem. Ne desem tam olarak cevabı olmaz. Sadece kendi şahsi fikrim, kendi denemelerim sonucu çıkardığım bir sonuç. Doğrudur veya değildir, bu tartışılabilir. Ben eğer .html şeklinde kullanıyorsam ve rakam olacaksa sona alırım. daima kelimeyi önceliğe veririm. Böyle daha faydalı olduğunu düşünüyorum.
 

desoLate

0
Onaylı Üye
Üye
Katılım
14 Haziran 2006
Mesajlar
220
Açılan Konu
23
Tepki puanı
0
İlgin, cevapların için teşekkür ederim yagmayok.
 

BordoMavi

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Açılan Konu
16
Tepki puanı
0
Konum
Hirçın Sulardan
@yagmayok un dediği numara olayını şu mantıkla halledersen sorun olacağını sanmıyorum ekleyeceğin rakam mysql e eklediğin son verinin id numarası olabilir atıyorum girilen son kayıt 54 ise başlığını "54-Turkiye-potada-fransayla-karsi-karsiya" şeklinde yaparsın böylece çakışma olasaılığı ortadan kalkmış olur
 
Üst