pedrofernandes
pedrofernandes

Reputation: 16854

URL Rewriter.NET and multiple querystrings

I'm stressing out trying to create a url rewriter.net rule for my web site.

I have a link

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

And I want replace it by this

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

I tried the following:

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

But it didn't work.

Can anybody help me?

Upvotes: 2

Views: 1902

Answers (5)

Pavlo Neiman
Pavlo Neiman

Reputation: 7536

This will work

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

Upvotes: 0

Stefan
Stefan

Reputation: 1739

Try this:

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

Or better(shorter):

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

I'm thinking that the "." you're using is too greedy and matches too much.

Upvotes: 2

Rubens Farias
Rubens Farias

Reputation: 57946

Try this:

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

Upvotes: 0

Kamarey
Kamarey

Reputation: 11079

you forgot to escape some special symbols ('.' and '?'), and not sure about the '~':

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

Upvotes: 0

John Rasch
John Rasch

Reputation: 63445

Did you add:

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

to your web.config file?

Upvotes: 0

Related Questions