asp.net实现URL重写

一、前台页面

     1.先创建一个网站,添加一个Index.aspx页面,在源文件的form里面添加如下代码


    <form id="form1" runat="server">
        <div>
            重写前
            <a href="Detatil.aspx?id=1">商品1</a>
            <a href="Detatil.aspx?id=2">商品2</a>
            <hr />
            重写后
            <a href="goods_3.html">商品3</a>
            <a href="goods_4.html">商品4</a>
        </div>
    </form>

 2.Index.aspx页面的浏览效果如下

3.添加一个Detatil.aspx页面,在源文件的form里面添加如下代码


    <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </div>
    </form>

4.在Detatil.aspx页面后台load事件里面添加如下代码


        protected void Page_Load(object sender, EventArgs e)
        {
            //接受id值
            string id = Request["id"].ToString();
            this.Label1.Text = "商品编号:" + id;
        }

 5.创建一个类,命名为ReWrite,ReWrite类的具体代码如下

public class ReWrite:IHttpModule
    {
        void IHttpModule.Dispose()
        {
        }

        void IHttpModule.Init(HttpApplication context)
        {
            context.BeginRequest+=context_BeginRequest;
        }

        private void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication http = sender as HttpApplication;
            string url = http.Request.RawUrl;
            //制定正则表达式规则,判断是否重写url
            Regex r= new Regex(@"goods_\d+\.html");
            if (r.IsMatch(url))//如果满足条件,就重写url
            {
                var id =url.Split('_', '.');//截取到id
                http.Context.RewritePath("Detatil.aspx?id=" + id[1]);
            }
        }
    }

 当点击“商品1”时候,显示如下

 页面的url没有重写,会暴露出这个网页的后缀名aspx,不安全。

当点击“商品3”时候,显示如下

 可以看到,当点击“商品3”的时候,页面的url重写了,不再显示aspx了


总结

        以上就是今天要讲的内容,简单介绍了在asp.net中实现url的重写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值