Asp.net URL 用正则表达式重写规则

Asp.net URL Rewrite Rule with Regex

我有 web.config 文件的重写规则。

 <rewrite url="~/Login/(.+)$" to="~/Login.aspx?return="/>
 <rewrite url="~/(.+)-xxx-(.+)$" to="~/Post.aspx?ost_name=&amp;post_id="/>

登录后第一个用于重定向 url。 第二个 posts.

如果用户尝试登录或单击 post 页面上的评论,他们将转到带有重定向的登录页面 url。

 protected void lnkLogin_Click(object sender, EventArgs e)
    {
        Session["GoBackUrl"] = Request.RawUrl.ToString().Replace("/", "$");
         base.Response.Redirect("~/Login/" + Session["GoBackUrl"].ToString());
    }

例如

domain.com/Login/$post_name-xxx-post_id

登录后他们将返回 post 页面。

但是根据这个规则,他们不会进入登录页面。 Url 正在更改为

 domain.com/Login/$post_name-xxx-post_id

但用户停留在同一页面。 我该如何解决这个问题?

我从Devrim Altinkurt's(lang:Tr) 页面找到这个例子并写信给他。他帮了我。

解法: “处理=”停止

<rewrite url="~/Login/(.+)$" to="~/Login.aspx?return=" "processing="stop/>
 <rewrite url="~/(.+)-xxx-(.+)$" to="~/Post.aspx?post_name=&amp;post_id="/>

当你不写的时候。应用程序查找所有规则并触发最后一场比赛 如果你有相同的 Url,你应该使用它。更详细一点:规则等级很重要。