2010-02-18 6 views
0

J'ai finalement eu la règle mod_rewrite quelque peu, mais j'aimerais en faire un peu plus et je ne sais pas comment. Voici ce que j'ai actuellement:mod_rewrite question sur la modification des URLs

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

Ce qui me permet de le faire:

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

qui fonctionne bien beau, mais je voudrais affiner plus, de sorte qu'il serait:

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

Cependant, je dois passer la variable nol parce qu'elle est la seule vraie clé id (leur pourrait être deux personnes dans le db nommé Fred Pierrafeu). La variable courte n'a pas beaucoup d'importance. Mon but est de passer en quelque sorte juste le nom sans montrer la variable lnum. Y a-t-il un moyen de faire cela? Puis-je en quelque sorte cacher la variable lnum quand elle est passée? Ou dois-je faire un peu de travail php/mysql?

Tout conseil, des commentaires ou des suggestions sont les bienvenus.

Répondre

2

La seule clé que vous obtenez du client quand il va sur votre site web est l'URL. Si l'URL n'identifie pas de manière unique la page à afficher, vous devez soit afficher une sorte de page de désambiguïsation, soit abandonner l'idée.

0

Vous pouvez essayer de générer un identifiant unique pour l'utilisateur au moment de l'enregistrement et l'utiliser partout. Par exemple, pour Fred Pierrafeu

id unique = fred (s'il n'y a pas fred déjà présent) identifiant unique = fred-flinstone (s'il y a déjà un présent fred) identifiant unique = fred-flinstone1 (s'il y a déjà une fred flinstone présent)

Une certaine logique de ce genre.

0

Si vous devez d'abord obtenir l'ID de la base de données, pourquoi ne pas utiliser un ID de session dans un cookie? Ou l'ID de session en tant que paramètre GET ou POST (c'est-à-dire avec un champ de formulaire masqué).

De toute façon, il n'est pas très sûr d'exposer l'ID utilisateur comme ça. Utilisez un ID "aléatoire", comme un ID de session, et liez-le à l'ID utilisateur.