url重写的web.config是
<rewrite>
<rules>
<rule name="Mobile Portal">
<match url="^(code)(/)?([^']*)" />
<action type="Redirect" url="Code.aspx?id={R:3}" />
</rule>
</rules>
</rewrite>
input: www.abc.com/Code.aspx?id=123abcdef
Required output: www.abc.com/code/123abcdef
current output: http://www.abc.com/Code.aspx?id=.aspx
有效页面网址为 www.abc.com/code/123abc 。我需要“123abc”。当我通过 www.abc.com/code/123abc 访问该页面时,该网址将转换为“ http://www.abc.com/Code.aspx?id=。 aspx “。我正在使用IIS 7.那么我该如何解决这个问题?
提前多多感谢。
答案 0 :(得分:0)
您可以使用网址路由而不是网址重写。为此目的,请转到Global.asax文件并编写如下的RegisterRoutes方法:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("my_abc_page",
"code/{id}",
"~/Code.aspx");
}
使用上述命令,www.abc.com/code/123abcdef
之类的任何请求都会解释为www.abc.com/Code.aspx?id=123abcdef
,您可以在页面代码中访问此ID:
theId = Page.RouteData.Values["id"] as string;