2011-08-27 4 views
2

J'utilise ce testeur pour le test url mod_rewrite: http://martinmelin.se/rewrite-rule-tester/Url réécriture mod_rewrite

Quand j'écris quelque chose comme ceci:

RewriteRule ^x/([a-z]+)/([0-9]+)/$ x.php?x=$2 

Même si je suis entré url:

x/p/6/ 

Il est renommé en

x.php?x=p 

et. Ce que je veux, c'est

x.php?x=6 

Je suis nouveau avec mod rewrite, donc tout serait utile.

+2

Votre règle est correcte. Vous devez tester l'exactitude de la règle sur le serveur Apache actif et non sur un service tiers qui ne fonctionne pas comme prévu. Et, BTW, vous devriez laisser au moins quelques commentaires à vos questions précédentes et ne pas simplement poser une nouvelle question en laissant derrière derrière sans aucun commentaire/explication. – LazyOne

Répondre

2

Je ne suis pas un pro dans mod_rewrite moi-même, mais je pense qu'il y a quelque chose qui ne va pas avec cet outil. par exemple, si vous modifiez x.php?x=$2 à x.php?$1=$2, $2 sera analysée correctement. Et puis, CMIIW mais l'expression rationnelle semble bien. Testez la regex here ou here. Et avez-vous déjà essayé la RewriteRule vous-même?

1
RewriteRule ^x/([a-z\/]+?)/([0-9]+)/$ x.php?x=$2 

Ceci ajoute tous/caractères au premier bloc regex. Le ? rend la recherche non-gourmande.