繁体   English   中英

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

[英]Asp.net URL Rewrite Rule with Regex

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

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

登录后第一个用于重定向URL。 第二个职位。

如果用户尝试登录或在帖子页面上单击评论,他们将转到带有重定向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

登录后,他们将返回到帖子页面。

但是使用此规则,他们不会进入登录页面。 网址正在更改为

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

但用户停留在同一页面上。 我该如何解决?

我从Devrim Altinkurt的 (lang:Tr)页面找到了这个示例,并写了他。 他帮了我。

解决方案: “处理=“停止”

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

当你不写的时候。 应用程序会查找所有规则并触发最后一个匹配项。如果您使用相同的网址,则应使用此网址。 更详细一点:规则等级很重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM