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的隐藏
标签:网页,Url,void,窗体,context,app,重写,id From: https://www.cnblogs.com/hyh749/p/17631490.html