2009-10-14 7 views
2

Je suis stressant en essayant de créer une règle url rewriter.net pour mon site web.URL Rewriter.NET et plusieurs querystrings

J'ai un lien

http://localhost/Pages/CategoryList.aspx?ID=2&Page=1 

Et je veux le remplacer par ce

http://localhost/Category/2.aspx?Page=1 

J'ai essayé les éléments suivants:

<rewrite url="~/Category/(.+).aspx?Page=(.+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

Mais ça n'a pas marché.

Quelqu'un peut-il m'aider?

+0

Pourquoi voudriez-vous garder le .aspx? Vous pourriez rendre une URL plus jolie (et plus sémantique) assez facilement avec la réécriture ... – Skilldrick

Répondre

0

Cela fonctionne

<rewrite url="~/Category/(.+).aspx(\?(.*))?" to="~/Pages/CategoryList.aspx?ID=$1&amp;$3" /> 
0

Avez-vous ajouté:

<httpModules> 
     <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/> 
</httpModules> 

à votre fichier web.config?

+0

Oui. J'ai d'autres règles travaillant dans le même projet. – pedrofernandes

0

vous avez oublié d'échapper à certains symboles spéciaux, et pas sûr de la '~' (et '' '?):

<rewrite url=".*/Category/(.+)\.aspx\?Page=(.+)" to="/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 
0

Essayez ceci:

<rewrite url="~/Category/(.+)\.aspx\?Page=(.+)" 
     to ="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 
2

Essayez ceci:

<rewrite url="~/Category/([0-9]+)\.aspx\?Page=([0-9]+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

Ou mieux (plus court):

<rewrite url="~/Category/(d+)\.aspx\?Page=(d+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

Je pense que le "." vous utilisez est trop gourmand et correspond trop.