.neturl-rewritingweb-configurlrewriting.net

UrlRewriting with urlrewritingnet


I want to rewrite url like below http://www.abc.com/ac/ac0008 to http://www.abc.com/temp/urlRewriter.aspx?oldurl=/ac/ac0008

and

http://www.abc.com/ac/ac0008?vmid=233 to http://www.abc.com/temp/urlRewriter.aspx?oldurl=/ac/ac0008/vmid=233

so, In my urlrewritingnet rule is like this

  <add name="ac_redir1" 
  virtualUrl="^~/ac/ac0008?vmid=(.*)" 
  rewriteUrlParameter="ExcludeFromClientQueryString" 
  destinationUrl="~/temp/UrlRewriter.aspx?bike=y&amp;oldUrl=/ac/ac0008?vmid=$1"    
  ignoreCase="true" />

But this rule works for 1st url only, for 2nd url it sends only /ac/ac0008 and it doesn't send like this /ac/ac0008/vmid=233

Can anyone give me a sample rule for rewriting url with querystring parameters. Then I can get an idea to do this.

Thanks.


Solution

  • I think you have messed up your code.

    For 2nd rule, new url will be like this, ~/temp/UrlRewriter.aspx?bike=y&oldUrl=/ac/ac0008?vmid=233"

    then when you access to your query strings as below

    string oldurl = Request.QueryString["oldUrl"];
    strign vmid =  Request.QueryString["vmid"];
    

    now

    oldurl = "/ac/ac0008"
    vmid = 233
    

    you wont get

    oldurl = "ac/ac0008?vmid=233" at once :)
    

    hope you get an idea.