NO kimliği ile oldukça bağlantılar

2 Cevap php

Ben yeni bir web sitesi için oldukça bağlantıları uygulamak için elimden seçenekleri düşünüyorum.

Ben temelleri yapıyor, örneğin işe nasıl anlamak:

/ View/postTitle/7895

Ben sadece id 7895 pick up ve sadece başlık göz ardı edebilirsiniz.

Ancak, bazı web siteleri tamamen kimlikleri kurtulmak için yönetmek olduğunu görüyoruz:

/ View / postTitle

Bu nasıl çalışır?

Aklıma tek yolu, her talebi, pageTitle bir dize olarak gönderilir ve bazı kod bazı SQL doğru id dönmek kontrol olmasıdır. Ancak hiçbir potansiyel pahalı SQL sorguları bir sürü demek istiyorsunuz? Eğer mesaj bir çok şey var özellikle.

Ayrıca, birisi bir yazı oluşturur her zaman, ben bu yazı için benzersiz, url-dostu, dize oluşturmak gerekiyor demektir. Ben eşsiz bir tane almak kadar veritabanına karşı kontrol etmeniz gerekir. Hepsi çok yok gibi görünüyor?

Ben bu yanlış şekilde bakıyorum? Ya da bu daha kolay ve verimli hale getirmek için hazır API'ler ve araçları vardır?

PHP / MySQL, Apache kullanıyorum.

Teşekkürler

2 Cevap

Kolay bir yol urlencode orijinal başlığı () temsili karma olabilir - normalleştirir / sanitizes başlıkları yayınlamak bir işlev oluşturun. Yerine db-üretilen sayısal değer 'id' olarak bu saklayın, ve SQL önemli bir değişiklik gerekmez.

Sen doğru. Eğer işlemek gereken iki yönü vardır.

Birisi bir yazı gönderdiğinde Birincisi, bir bağlantıların her ekleyerek için bir html-dostu URL oluşturmak var. Gerçekçi, bu çok zor değil. Sen Temelde, veritabanı depolama için yapıyoruz ne öncelemeli iyi bir başlangıç ​​noktasıdır vb boşluk, özel karakterler, değiştirmeniz gerekir. Ayrıca bunlar unique emin olmak gerekir.

Birisi link ile sitenizi çarptığında İkincisi, düzgün bunu çözmek gerekir. Bu biraz daha karmaşık olduğunu ancak bu ... o olur aslında ne çünkü uniquely bir id olarak URL üretilen her düşünüyorsanız etkili aynı çalışabilir bunu sorgulamak ({[(1) }] tabii ki!).

Katı bir şekilde uygulanması için, CMS çoğu - WordPress ve Drupal akla gelen - oldukça etkili bu kolu. Drupal arka plandan geliyor, ben bu "yol" üzerinde odaklanarak nasıl yapılır için "yol" ve "OtoYol'un" modüller bakmak öneririm ... Bu sorunun iki yarıyı da kapsar.