The URL rewrite module is not aware of the ASP.NET root operator: "~". So, first thing that should be done is to change the rule pattern and substitution URL to not contain "~". For example this rule: <add name="Rule1" virtualUrl="^~/(.*)/Detail(.*).aspx" rewriteUrlParameter...