SEO dostu bağlantıları kullanma

6 Cevap php

Ben bir PHP web sitesi geliştiriyorum ve şu anda benim bağlantıları facebook-ish tarzı vardır, gibi pek

me.com/profile.php?id=123

I'm thinking of moving to something more friendly to crawling search engines (like here at stackoverflow), something like:

me.com/john-adams

But how can I differentiate from two users with the same name - or more correctly, how does stackoverflow tell the difference from two questions with the same title? I was thinking of doing something like

me.com/john-adams-123

ve url ayrıştırma.

Başka öneriler?

6 Cevap

Stackoverflow me.com/123/john-adams john-adams kısmı aslında hiç programlı bir anlamı var burada, daha fazla gibi dışında, me.com/john-adams-123 seçeneğine benzer bir şey yapar. Semantik-içerik-serbest sayısal kimliği uzak URL sağında çünkü önerdikleri yolu biraz daha iyidir.

Ne yapacağını kullanıcı tabloda benzersiz bir sümüklü böcek (bu SEO dostu URL bileşenleri genellikle salyangozlar denir) depolamak ve gerektiğinde benzersiz bir tane almak için numara ekleme olanı yapmaktır.

Yığın taşması örneğinde, bu

http://stackoverflow.com/questions/975240/using-seo-friendly-links

http://stackoverflow.com/questions <- Constant prefix
/975240                            <- Unique question id
using-seo-friendly-links           <- Any text at all, defaults to title of question.


Facebook, diğer taraftan, sadece herkes benzersiz bir kimlik almaya yapmaya karar verdi. Sonra bir profil sayfası olarak bu kullanmak için gidiyoruz. Gibi bir şey http://facebook.com/p/username/. Onlar sadece kullanıcının tüm mevcut kullanıcılar arasında benzersiz seçer bazı dize olması gerektiren, kullanıcılar arasında teklik sorununu çözme.

SO 'hileleri' :-).

Sorunuza için bağlantı "http://stackoverflow.com/questions/975240/using-seo-friendly-links" olduğunu, ancak "http://stackoverflow.com/questions/975240/" da çalışır.

Numarasından sonra parçası SEO dostu biraz, ama SO orada gerçekten umursamıyor. Ben soru başlığa bunu varsayılan düşünüyorum.

Yani sizin durumunuzda gibi bir bağlantı kurabilirsiniz:

me.com/123/john-adams

İkinci John Adams, farklı bir kimliği ve benzeri eşsiz bir URL olurdu:

me.com/111/john-adams

Ben içerik hiyerarşi korur gibi önerdiğiniz çözüm stackoverflows bu daha iyi bir çözüm olduğunu söyleyebilirim:

me.com/john-adams-123

Kullanıcı önce benzersiz ID Kullanımı sadece saçmadır.

Ben, ancak, içerik türü uygulanmasını öneriyoruz:

me.com/john-adams-123.html

Içerik türleri çeşitli hizmet ederken bu tutarlı URL'ler için izin verecektir.

D: Ayrıca, daha fazla özellikle yüksek düzey numaraları için, sizin URL gereksiz cruft miktarını azaltmak için, benzersiz kimliği için sexatrigesimal faydalanmak olabilir, ancak bu sık sık overkill

me.com/john-adams-123.html -> me.com/john-adams-3F.html
me.com/john-adams-1234567890.html -> me.com/john-adams-KF12OI.html

Finally, be sure to utilize 301 redirects on non-conforming accessible URIs to redirect to the "correct" seo-friendly schema to prevent duplicate content penalties.

Ben URI soldaki kısmı SEO sıralamasında daha önemli olduğunu düşünüyorum, çünkü ben, me.com/john-adams-123 sizin tarzı ile gitmek istiyorum.

Birkaç denetleyicileri (kullanıcı profili sadece) bu kullanmak isteyen Aslında, eğer, bir yeniden yazma kuralı yönlendirerek /.+-profile-(\d+) {[için (daha me.com/john-adams-profile-123 gibi yapmak isteyebilirsiniz 2)]} ve hala bu kullanıcının makaleler için} [(3)] {, diyelim ki, kullanmak mümkün ...

Özel karakterler içeren bağlantıları ile ilgili önlemek için, Zend Framework için bu eklentiyi kullanabilirsiniz.

https://github.com/btlagutoli/CharConvert

$filter2 = new Zag_Filter_CharConvert(array(
               'onlyAlnum' => true,
               'replaceWhiteSpace' => '-'
           ));
echo $filter2->filter('éééé ááááá ? 90 :');//eeee-aaaaa-90

Bu diğer dillerde dizeleri ile başa yardımcı olabilir