İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

ID göstermeden oluşturulan linkler?

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
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
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
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
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
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
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
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
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
İlgin, cevapların için teşekkür ederim yagmayok.
 

BordoMavi

0
İyinet Üyesi
Katılım
31 Ekim 2007
Mesajlar
176
Reaction score
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
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst