Soru bana biraz belirsiz olduğundan, bilgi dize (bir makale için bir başlık gibi) ek bilgi için bir anahtar-sort-of-şey olarak hareket ettiğini varsayarak yaşıyorum ve hiçbir gerçek GET arama gereksinim vardır.
Bu durumda, veritabanı yapısını değiştirmek için izin veriliyorsa, ben başlık thingy olarak kullanılarak, (sayısal tanımlayıcı gibi) surrogate key yerine çeşit kullanmak bir slug) .
Bu durumda, web sitenizin içinde üreten bağlantıları, hedef için id ve sülük hem de olsun, ve http://example.com/[id]/[slug]/
, örneğin http://example.com/213/omg-lol-the-cat-jumped/
biçiminde bunun bir url oluşturmak.
Lütfen sunucu isteği işlerken, sen id ("213") sadece ilgilenen ve sülük ("omg-lol--cat-atladı") gizlice-göz vermek için sadece insan kullanıcılar içindir başlık ve arama sonucunu etkilemez. Sen kimliği değil, sülük eşleşen sayfasını sağlar. Bu şekilde, arama (hiçbir SQL LIKE-eşleştirme) verimli ve daha az hata eğilimli (malformatted salyangozlar gelen SQL enjeksiyonu).
Bir mermi içine bir dize dönüştürmek için nasıl (mümkün?) Sorusuna gelince, bu pek çok yaklaşım vardır. Ben sadece tüm alfanümerik olmayan karakterleri kaldırmak ve tire veya alt çizgi ile alfanümerik parçalarını birleştirmek istiyorsunuz. Muhtemelen 20-ish karakter dize uzunluğunu kesmek istiyorum.