UrlRewriting с помощью urlrewritingnet

Я хочу переписать URL, как показано ниже: http://www.abc.com/ac/ac0008 по http://www.abc.com/temp/urlRewriter.aspx?oldurl=/ac/ac0008

а также

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

Итак, по моему правило urlrewritingnet выглядит так

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

Но это правило работает только для 1-го URL-адреса, для 2-го URL-адреса отправляется только / ac / ac0008 и не отправляется следующим образом / ac / ac0008 / vmid = 233

Может кто-нибудь дать мне пример правила переписать URL с параметрами строки запроса. Тогда я могу получить идею сделать это.

Благодарю.

1 ответ

Решение

Я думаю, что вы испортили свой код.

Для второго правила новый URL будет выглядеть следующим образом: ~/temp/UrlRewriter.aspx? Bike=y&oldUrl=/ac/ac0008? Vmid=233"

затем при доступе к строкам запроса, как показано ниже

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

сейчас

oldurl = "/ac/ac0008"
vmid = 233

ты не получишь

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

надеюсь, у вас есть идея.

Другие вопросы по тегам