Iis 7 Url路由不工作?

Iis 7 Url路由不工作?,iis-7,url-rewriting,web-config,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}" /> <

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.aspx?id=123abcdef
所需输出:www.abc.com/code/123abcdef
电流输出:http://www.abc.com/Code.aspx?id=.aspx
有效页面url为www.abc.com/code/123abc。我需要“123abc”。当我通过www.abc.com/code/123abc访问页面时,url将转换为“http://www.abc.com/Code.aspx?id=.aspx”。我正在使用IIS 7。那么我如何解决这个问题呢


非常感谢。

您可以使用url路由而不是url重写。为此,请转到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;