URL'ler değiştirmeyle ilgili mod_rewrite soru

3 Cevap php

Sonunda biraz mod_rewrite kuralı aşağı var, ama onunla biraz daha fazla yapmak ve nasıl emin değilim istiyorum. İşte ben şu anda ne var:

RewriteRule ^rider/(.*)/(.*)*$ /bar/standings/rider.php?lnum=$1&short=$2

Hangi bana bunu sağlar:

http://pca.localhost/rider/214142/sme 
instead of 
http://pca.localhost/bar/standings/rider.php?lnum=214142&short=sme

İşte tüm ince ve züppe çalışıyor, ama ben bunun olacağını, böylece daha çok rafine etmek istiyorum:

http://pca.localhost/rider/fred/flinstone

Ancak, ben sadece gerçek kimliği anahtar (yani fred flinstone adlı db iki kişi onların olabilir) çünkü LNUM değişken geçmesi gerekiyor. Kısa değişken kadar önemli değil. Amacım bir şekilde LNUM değişkeni gösteren olmadan sadece isim geçmektir. Bunu yapmak için bir yolu var mı? Bu iletildiğinde ben bir şekilde LNUM değişkeni gizleyebilir miyim? Ya da, bazı kaygan php / mysql çalışma yapmak gerekiyor?

Herhangi bir tavsiye, yorum veya önerilerinizi bekliyoruz.

3 Cevap

Onlar sitesi Fresh gittiğinizde istemciden olsun tek anahtar URL. URL benzersiz görüntülemek için sayfayı bulmazsa o zaman da anlam ayrım sayfasına çeşit göstermek gerekir veya fikri terk gerekir.

Sen kayıt sırasında kullanıcı için benzersiz bir kimliği üreten denemek ve bu boyunca kullanabilirsiniz. Fred Flinstone için örneğin

unique id = fred (if there's no fred already present) unique id = fred-flinstone (if there's already a fred present) unique id = fred-flinstone1 (if there's already a fred flinstone present)

Bu tür bir mantık.

Eğer ilk etapta DB kimliği almak için varsa, neden bir tanımlama bir oturum kimliğini kullanarak değil? Veya GET veya POST parametresi (yani gizli bir form alanı ile) olarak oturum kimliği.

Neyse, bu gibi kullanıcı kimliğini ortaya çıkarmak için çok güvenli değil. Bir oturum kimliği gibi, bir "rastgele" kimliğini kullanmak ve kullanıcı kimliği bağlamak.