URL Rewriting lien rompu ou introuvable

Résolu/Fermé
tibou - Modifié par tibou le 23/08/2010 à 20:44
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 24 août 2010 à 15:01
Bonjour,

J'ai une petite question a vous posez.
J'utilise l'URL Rewriting sur mon site
la structure de base (sans réecriture)
http://xxxx.tk/index.php?L=Fr&P=Echange&Action=Voir&Id=30
et j'aimerais que ca devienne
http://xxxx.tk/Fr/Echange/Voir/30
et parfoit ma structure de base est comme ca:
http://xxxx.tk/index.php?L=Fr&P=Echange
J'aimerais donc que ca devienne
http://xxxx.tk/Fr/Echange
Voila mon .htacces
Options +FollowSymlinks    
RewriteEngine on    
RewriteRule ([a-zA-Z\-]+)/([a-zA-Z\-]+)/([a-zA-Z\-]+)/([0-9\-]+) index.php?L=$1&P=$2&Action=$3&Id=$4 [L]    


Quand je mets http://xxxx.tk/Fr/Echange/Voir/30 cela fonctionne mais si je mets http://xxxx.tk/Fr/Echange ben il me dis que le lien est rompu
Pouvez-vous m'aider ?

cordialement Tibou

6 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 24/08/2010 à 12:39
t'as essayé d'en faire un sous la forme :

RewriteRule ([a-zA-Z\-]+)/([a-zA-Z\-]+) index.php?L=$1&P=$2 [L]

sinon en gros c'est "normal" que ca ne fonctionne pas, car dans ton pattern, tu utilises des '+' (correspond à 1 ou plus) pour les groupes de caractères définis entre les crochets, il faut mettre ' * ' qui correspond à 0 ou plus, par contre il faut que ca gère dans ton script Php si tu mets des * car Action et Id seront setté a rien.

ce qui donnerait :
RewriteRule ([a-zA-Z\-]+)/([a-zA-Z\-]+)?(/[a-zA-Z\-]*)?(/[0-9\-]*) index.php?L=$1&P=$2&Action=$3&Id=$4 [L]
0
Merci de ta reponse mais ca ne marche toujours pas comme je le voudrais...
quand je mets ca ([a-zA-Z\-]+)/([a-zA-Z\-]+)?(/[a-zA-Z\-]*)?(/[0-9\-]*) index.php?L=$1&P=$2&Action=$3&Id=$4 [L]
je dois mettre ca comme url http://ecox.tk/Fr/Accueil//
si je ne mets pas les double slache a la fin il m'affiche une lien rompu ou introuvable toujours ...
merci de votre aide
0
Je me suis tromper comme ca ca marche aussi http://xxx.tk/Fr/Accueil/
Mais je dois toujours mettre un slache sinon ca ne fonctionne pas avec vous une idée ?
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 août 2010 à 14:20
okay, j'vois le truc, j'ai merdé en écrivant la regexp, dsl, je l'avais pas testé, ça devrait le faire avec :
([a-zA-Z\-]+)/([a-zA-Z\-]+)(/[a-zA-Z\-]+)?(/[0-9]+)?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Heu ok merci :) heu admeton que je mets comme url http://xxx.tk/Fr/Echange/voir/29
donc le 29 c'est l'id
mais il prends quoi comme valeur juste le 29 ou le /29 ?
parceque quand je le fais il me mets un erreur et m'affiche comme quoi l'id est incorecte
c'est un erreur de ta par ou alors dans le code je dois dire qu'il ne prenne pas en compte le / ?
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 août 2010 à 15:01
il suffit de sortir les / des parenthèses de cette sorte :
([a-zA-Z\-]+)/([a-zA-Z\-]+)/?([a-zA-Z\-]+)?/?([0-9]+)?

;)
0