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/123abc。我需要 "123abc" 。当我通过www.abc.com/code/123abc访问页面时,URL 被转换为“ http://www.abc.com/Code.aspx?id=.aspx ”。我使用的是 IIS 7。所以我该如何解决这个问题?

提前非常感谢。

4

1 回答 1

0

您可以使用 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;
于 2012-10-14T10:30:46.097 回答