Bonjour,
Tout d'abord j'éspère ne pas m'être trompé de section sur le forum, désolé par avance si c'est le cas .. :/

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je n'ai pas réussi à faire ce que je souhaitais parce que je ne sais pas réellement comment faire, j'ai beau cherché sur internet des tutos permettant de m'expliquer c'est souvent très flou ^^'

Ce que je veux

J'ai sur mon site une page membre, une page profil regroupe les informations de chaque membre, on y accède par cette url
"profil?pseudo=XX" je voudrais réecrire cette url pour qu'elle ait la forme : http://monsite.com/profil/pseudo

J'ai essayé ceci mais je ne suis pas convaincu .. :/

RewriteRule ^profil/([a-zA-Z0-9]*) profil.php?pseudo=$1 [L]

Merci d'avance pour votre aide .. :)

7 réponses


tleb
Réponse acceptée

Salut,

Je vais t'aider, mais pas te donner la solution comme ça (c'est trop simple sinon :p).

Dans ton .htaccess, il faut que tu actives le RewriteEngine puis que tu ajoutes une RewriteRule avec, comme premier paramètre, l'URL que l'utilisateur va utiliser pour se connecter sur ton site (profil/pseudo) et en second l'URL sur laquel la requête doit être redirigé.

Le premier paramètre doit commencer par ^ (ça indique qu'il faut que la regex matche le début du path), et fini par /? (indique que le dernier / est optionnel) et $ (indique qu'il faut que la regex matche la fin du path). Pour capturer un groupe dans la regex, utilise la syntaxe (....). Pour matcher plusieurs catactères, la syntaxe est : [a-zA-Z0-9]+ (ça matche tout de a à z, de A à Z, de 0 à 9 et le plus signifie ça une fois ou plus). Pour récupérer la capture du pseudo que tu as fais avec (....), utilise la syntaxe $1 dans le second paramètre du RewriteRule.

Pour le RewriteEngine et le RewriteRule, tu peux trouver la doc Apache en ligne très facilement.

Pour tester une regex, je te conseille regex101 et pour tester un .htaccess, ce site.

Grope
Auteur

Ok merci je vais essayer ravec les infos que tu m'as donné ^^
Sinon pour ce qui est du lien où l'utilisateur cliquera pour pouvoir accéder à cette fameuse page le lien présent dans le a href
reste profil?pseudo=XX ou bien je fais déjà en sorte dans ce a href d'écrire profil/pseudo ?

Grope
Auteur

Cela devrait suffire non ?
RewriteRule ^profil/([a-zA-Z0-9]+)$ profil?pseudo=$1

Salut,

c'est nickel,
il manque juste le /? avant le $, comme l'avait indiqué tleb.
C'est mieux de le mettre.

Grope
Auteur

Ca marche merci beaucoup ! ;D

Attends, tu as vraiment compris mes explications, ou tu as trouvé la solution sur internet ? Je ne pensais pas que mes explications étaient assez clair (il est tard en même temps...).

Grope
Auteur

Ah ca fait quelques temps que je me suis pas connécté x)
Oui j'ai compris tes explications ^^
Merci encore :p