.net - Intelligencia UrlRewriter with RegEx is not working -


i have following rewrite rule:

<rewrite url="^/membership/(.+)/(.+)/(.+)/(.+)" to="/membership/index.aspx?parentf=$3&amp;f=$4"/> 

which expecting should work url:

/membership/benefits/member-groups/sub-groups/motorcycle-live.aspx 

however, in page rewritten url maps (/membership/index.aspx), retrieving filename ("f" in querystring) , parentfilename ("parentf" in querystring) use in query current page information.

  • value of filename in case sub-groups,motorcycle-live.aspx (when expecting motorcycle-live.aspx)
  • value of 'parentfilename' in case member-groups (when expecting 'sub-groups')

i have few other rewrite rules lower levels, example:

<rewrite url="^/membership/(.+)" to="/membership/index.aspx?f=$1"/> <rewrite url="^/membership/(.+)/(.+)" to="/membership/index.aspx?parentf=$1&amp;f=$2"/> <rewrite url="^/membership/(.+)/(.+)/(.+)" to="/membership/index.aspx?parentf=$2&amp;f=$3"/> 

they work following example urls (respectively):

/membership/benefits.aspx /membership/benefits/member-groups.aspx /membership/benefits/member-groups/sub-groups.aspx 

in these cases, filename , parentfilename values generated expected. '5th-level' page having problem.

what doing wrong?


edit

after removing of rewrite rules in web.config except one:

<rewrite url="^/membership/(.+)/(.+)/(.+)/(.+)" to="/membership/index.aspx?parentf=$3&amp;f=$4"/> 

i found worked on own. tried adding them in 1 one , changing order until worked. found following order of rules works:

<rewrite url="^/membership/(.+)" to="/membership/index.aspx?f=$1"/> <rewrite url="^/membership/(.+)/(.+)/(.+)/(.+)" to="/membership/index.aspx?parentf=$3&amp;f=$4"/> <rewrite url="^/membership/(.+)/(.+)/(.+)" to="/membership/index.aspx?parentf=$2&amp;f=$3"/> <rewrite url="^/membership/(.+)/(.+)" to="/membership/index.aspx?parentf=$1&amp;f=$2"/> 

so reversing order except have kept first rule in same position.

instead of posted rules, try this:

<rewrite url="^/membership/([^/]+)$" to="/membership/index.aspx?f=$1"/> <rewrite url="^/membership/([^/]+/)*([^/]+)/([^/]+)$" to="/membership/index.aspx?parentf=$2&amp;f=$3"/> 

this should avoid rule ambiguity, , has general rule arbitrary path depth.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -