2010-09-17 7 views
0

Aide s'il vous plaît.Remplacer le "X" dans cette URL www.websitename.com/info.php?lid=X

Je cherche la meilleure façon de remplacer le (nombre) "X" dans cette url

www.websitename.com/info.php?lid=x

le "x" est un valeur numérique - je voudrais remplacer le "X" avec le champ "nom" de ma base de données.

Est-ce que le mod réécrit le chemin à parcourir? J'ai plusieurs urls du même format (valeur différente de "X" bien sûr à la fin) que je souhaite changer pour créer des URL plus amicales en remplaçant le "X" par la valeur correspondante du champ de base de données "name".

Si la réécriture de mod est la voie à suivre, est-ce que quelqu'un peut aider avec le code recommandé pour aller dans le htaccess?

Merci d'avance.

Répondre

1

Entièrement édité: Ma réponse précédente était basée sur un malentendu de ce que vous essayez de demander.

Ce que vous demandez est de créer un système d'URL amical. Ceci est couvert dans de nombreux didacticiels - il suffit de rechercher des "URL conviviales" et vous trouverez beaucoup de ressources.

Voici un résumé de la façon dont cela fonctionne ...

Pour créer des URLs pour votre site, vous avez besoin quelque chose comme ça dans .htaccess (pas sûr si je suis le RewriteRule droit parce que c'est complètement en haut de ma tête, donc google pour un tutoriel complet pour vérifier):

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule /info/(.+) /info.php?name=$1 
</IfModule> 

Cela signifie une demande de http://www.example.com/info/foo serait réécrite à http://www.example.com/info.php?name=foo.

Ensuite, vous devez modifier votre application (en particulier, le fichier info.php) pour gérer ce nouveau format de requête dans lequel le name est donné dans l'URL au lieu du id.

Notez que dans cet exemple, tous les noms (par exemple, "foo") doivent être uniques. Si deux éléments de votre base de données portent le même nom, vous aurez des problèmes. Dans cet esprit, vous pouvez ajouter un nouveau champ à votre table de base de données, qui est une colonne unique contenant une chaîne utilisant uniquement des caractères alphanumériques et des traits d'union appropriés pour une URL (ce type de chaîne est appelé un slug). Vous utiliserez essentiellement ce slug à la place de l'identifiant pour les requêtes de base de données. Disons que vous créez un objet nommé "The Discombobulator". Lorsque cet élément est créé dans votre application, il doit également créer un slug sur les lignes de "the-discombobulator" et s'assurer qu'il est unique. Si vous créez un second élément appelé "Discombobulator", votre application pourrait générer un slug comme "the-discombobulator-2". Donc, quand quelqu'un demande http://www.example.com/info/the-discombobulator-2, mod_rewrite change cela pour http://www.example.com/info.php?name=the-discombobulator-2 et le remet à votre application. Votre application reçoit le paramètre name, qui est "the-discombobulator-2" et le recherche dans le champ slug de la base de données, et obtient l'enregistrement correspondant.

Questions connexes