网址路由不起作用?

时间:2012-06-22 10:06:05

标签: iis-7 url-rewriting web-config

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.那么我该如何解决这个问题?

提前多多感谢。

1 个答案:

答案 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;