2009-11-20 2 views
1

Je suis en train d'implémenter une réécriture d'URL en utilisant UrlRewriter.URL Rewriter ne saisissant pas la correspondance exacte

allant à http://domainname/11

ira à ~/Articles/Details.aspx? Itemid = 11

<rewriter> 
    <rewrite url="~/1" to="~/Items/Details.aspx?ItemId=1" /> 
    <rewrite url="~/2" to="~/Items/Details.aspx?ItemId=2" /> 
    <rewrite url="~/3" to="~/Items/Details.aspx?ItemId=3" /> 
    <rewrite url="~/11" to="~/Items/Details.aspx?ItemId=11" /> 
    </rewriter> 

Le problème ici est 11 réoriente toujours 1. Comme 400 réoriente à 4. Je suppose que ça ne correspond pas exactement, seulement une sorte de "Contient".

Comment puis-je faire correspondre exactement cela?

j'utilisais pour ce regex de ne pas tout le code dur, mais qui ne fonctionnait pas eitehr:

<rewriter> 
    <rewrite url="~/(\d)" to="~/Items/Details.aspx?ItemId=$1" /> 
</rewriter> 

Merci les gars!

Répondre

0
<rewrite url="~/(\d+)" to="~/Items/Details.aspx?ItemId=$1" /> 
-------------------^ 
1

Vous devez indiquer la fin de l'URL et utiliser un quantificateur pour votre expression \d pour permettre plus d'un chiffre:

<rewriter> 
    <rewrite url="~/(\d+)$" to="~/Items/Details.aspx?ItemId=$1" /> 
</rewriter> 
Questions connexes