Url重写隐藏网页路径技术

发布时间 2023-08-15 15:53:08作者: 花是花树是树

        Url重写:

实质上是将网页真实的Url隐藏起来,使用户通过虚拟的Url来访问资源,以弥补真是Url的许多不足;

作用:

(1)满足搜索引擎的需要,实现搜索引擎排名的优化

(2)隐藏网页实现技术,增强网站安全性

(3)提高网站的安全性和实用性

(4)Url支持 "可删减"的需求

下面通过代码来了解Url重写的使用方法

1、再一个Webform窗体有两个a超链接标签,her进行Url的跳转并再后端获取它对应的编号

<body>
    <form id="form1" runat="server">
        <div>
            <a href="Good_1.html">服装</a><!--数字表示商品的类型编号-->
            <a href="Good_2.html">美食</a>
        </div>
    </form>
</body>
</html>

2.在新建一个Webform窗体,用于跳转到的目标窗体,窗体名称可以随便取名

 随后在第二个窗体的后端进行编写

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //获取页面传过来的id
               int value= int.Parse(Request["id"]);
                //输出
                Response.Write("你访问的类型编号是" + value + "的商品列表");
            }
        }

3、新建一个类,并实现IHttpModule接口,在声明请求处理事件

 //实现IHttpModule接口
    public class UrlrewriteModeul : IHttpModule
    {
        public void Dispose()
        {
            throw new NotImplementedException();
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += context_begingRequest;
            //设置完这里后到Web.config中去配置文件
        }
        //声明请求处理事件
        void context_begingRequest(object sender,EventArgs e)
        {
            //将HttpApplication获取到
            HttpApplication app = sender as HttpApplication();
            //获取原始的Url
           string Url=app.Request.RawUrl;
            //运用正则表达式
            Regex regex_request = new Regex(@"\w+\d\.html");//需导入System.Text.RegularExpressions命名空间
            //判断格式是否符合要求
            if (regex_request.IsMatch(Url))
            {
                //符合条件后,进行截取
                int line = Url.LastIndexOf("_");//找到下划线处
                int dot = Url.LastIndexOf(".");//找到点处
                //根据—_和.,将编号取出来
                string id = Url.Substring(line + 1, dot - line - 1);
                //根据id值,拼接真正的Url
                string directUrl = "~/Home.aspx?id=" + id;
                //用app.Server.Transfer定向到另一个URl上面去
                app.Server.Transfer(directUrl);

            }
        }
    }

4.设置Web.config配置文件

 <!--Url重写配置文件-->
  <system.webServer>
    <modules>
      <add name="url" type="Url重写.UrlrewriteModeul"/><!--项目名称.接口类-->
    </modules>
  </system.webServer>

 这是运行结果

 Good_.html其实就是一个伪Url路径是虚拟的,只是通过它来访问真实的资源路径,这样就可实现网页URl的隐藏