Problème URL rewriting

Nouveau WRInaute
Bonjour,

j'ai regardé le tutorial pour faire de l'url rewriting mais je n'ai pas trouvé la réponse à mon problème.

j'ai une page qui se présente comme cela : fiche.php?nom=xxx&prenom=yyy&age=zz
et je souhaite avoir au final : fiche-xxx-yyy-zz.php

mais il faudrait également que l'adresse suivante : fiche.php?pseudo=ppp&age=zz
puisse être : fiche-ppp-zz.php

bien entendu, la variable prénom peut contenir des caractères spéciaux : tiret, espace, ...
et la variable pseudo des caracères comme des lettres, des chiffres, tiret, espace, ...

Si quelqu'un a une idée de comment je pourrais résoudre ce problème, car dans le turorial je n'ai rien trouvé .

merci
 
WRInaute accro
LOL J'imagine que tu vas rajouter &sexe=m&adresse=rue...&status=marie :mrgreen: Arf merde le nombre est limité :lol:

Fais plutôt fiche.php?id= et récupère le reste en base de dpnnées alors, parce que t'es parti pour un long calvaire comme t'es là :p
 
Nouveau WRInaute
non je veux pas de fiche.php?id= car je veux que ma page contienne le nom, prénom et age de la personne (pour le référencement).

Et je n'ai pas envie de rajouter sexe, adresse et status...

comment puis-je faire stp
 
WRInaute accro
T'as essayé de voir comment le navigateur réagissait quand tu passais des caractères spéciaux en url au moins ?
 
Nouveau WRInaute
de mon coté les caractères spéciaux marchent, mais si il faut on met pas de caractères spéciaux si ça pose problème
 
Nouveau WRInaute
Voila ce que j'ai fait dans un fichier htaccess :

Options +FollowSymlinks
RewriteEngine on

# Fiche avec variable nom+prénom+age :
RewriteRule ^fiche-([0-9]+)-([0-9]+)-([0-9]+).php
fiche.php?nom=$1&prenom=$2&age=$3 [L]

# Fiche avec variable pseudo+age :
RewriteRule ^fiche-([0-9]+)-([0-9]+)\.php$
fiche.php?pseudo=$1&age=$2 [L]



Le petit soucis est que je ne peux avoir que des chiffres pour les variables nom, prénom et pseudo.
Comment je peux faire pour que les variables suivantes contiennent :
- nom : lettres majuscules et minuscules
- prénom : idem nom + caractère spéciaux facultatif tiret (jean-michel)
-pseudo : idem nom + chiffre (facultatif)
 
WRInaute accro
l

([0-9]+) c'est pour dire au moins un chiffre
([a-z]+) c'est pour dire au moins une lettre (minuscules)

Allez va relire le tutoriel ;)
 
Nouveau WRInaute
([0-9]+) pour dire au moins un chiffre
([a-z]+) pour dire au moins une lettre

ok mais pour dire une lettre, un chiffre et un tiret, on fait comment ?
 
WRInaute occasionnel
Bonjour,

si tu veux vraiment reprendre les caractères spéciaux dans l'url, tu vas t'amuser. Tous les navigateurs ne les affichent pas de la même manière.

Tu ferais mieux de transformer les lettres accentuées en lettres sans accent (é -> e, è ->e, etc...)

De plus, pourquoi récupérer la fiche avec les variables nom + prénom + âge...

Tu peux simplement utiliser la variable "id" pour récupérer l'entrée, et rajouter derrière le nom, le prénom et l'âge:

http://monsite.com/fiche/435-nom-prenom-55.html
qui renvoie vers http://monsite.com/fiche.php?id=435

à plus
 
WRInaute occasionnel
edouard8053 a dit:
et comment tu procèderais ?

Code:
RewriteRule ^fiche-([0-9]+)-.*\.html$ fiche.php?id=$1 [NC,L]

un truc du style, je suis pas sûr de la commande, fais des tests, tu finiras bien par tomber sur la bonne. Le web regorge de tutoriel d'url rewriting.

à plus
 
WRInaute impliqué
Je plussoie.

Tu ne pourra pas éviter des ambiguité dans tes règles si tu utilise le tiret comme séparateur et que tu l'autorise dans le prénom. Comment tes règloes sauraient différencier entre un tiret dans un prénom et un tiret séparateur?

La solution de l'id unique est beaucoup plus simple et plus sûre.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut