大家好,又来和大家见面了,此次给大家带来的URL重写,关于URL重写是什么,有什么好处,如何重写,今天我和大家一起分享一下我的经验

一、URL重写

URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”。

二、URL重写优点

1、有利于百度、谷歌等搜索引擎收录于抓取,如果你是网站优化高手的化,这就是基本功了。。。

2、更具有可读性,伪装你的技术实现,让别人想攻击你都要有一定的难度!!!

三、如何URL重写

1、ASP.NET实现一共有两种

a.利用HttpModule处理request请求中的URL

b.利用插件IIS Rewrite 组件实现URL重写

2、HttpModule实现URL重写

a.手写看一下HttpModule,下图清楚的描述了HttpModule在整个页面请求过程中处于的低位,HttpModule是动态请求必经之路啊。

c.案例剖析,让你深入体会奥妙之处

第一步:修改如下代码

场景:有这样两个页面,数据列表页和数据详细页面,点击列表页数据进入详细页面,我们要做数据列表页面的连接做如下修改

修改前:<asp:HyperLink ID="hkTitle" runat="server"
                     NavigateUrl='<%# Eval("Id","BookDetail.aspx?id={0}") %>'>数据标题</asp:HyperLink>

修改后:<asp:HyperLink ID="hkTitle" runat="server"
                     NavigateUrl='<%# Eval("Id","BookDetail_{0}.html") %>'>数据标题</asp:HyperLink>

第二步:创建HttpModule,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
///DemoModule 的摘要说明
/// </summary>
public class DemoModule:IHttpModule
{
/// <summary>
/// 开始处理请求事件
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
private void context_BeginRequest(object sender,EventArgs args)
{
//获取HttpApplication
HttpApplication application = sender as HttpApplication;
//获取用户请求的URL
string oldUrl = application.Request.RawUrl;
//如果请求中存在“BookDetail”字符进行处理请求
if (oldUrl.IndexOf("BookDetail") > )
{
//截取BookDetail之前位置的字符串
string newUrl = oldUrl.Substring(, oldUrl.IndexOf("BookDetail"));
//请求的新字符串为"BookDetail.aspx?bid=XXXXXXXX"
newUrl = newUrl + "BookDetail.aspx?bid=" + oldUrl.Substring(oldUrl.LastIndexOf("_") + ,
(oldUrl.IndexOf(".") - oldUrl.LastIndexOf("_") - ));
//将请求中的URL进行重写
application.Context.RewritePath(newUrl);
} } public void Dispose()
{
throw new NotImplementedException();
} /// <summary>
/// 初始化事件
/// </summary>
/// <param name="context"></param>
public void Init(HttpApplication context)
{
//关联请求开始事件
context.BeginRequest +=new EventHandler(context_BeginRequest);
} }

第三步:配置HttpModule,在web.config中如下配置

<system.web>
<httpModules>
<add name="DemoModule" type="DemoModule"/>
</httpModules>
</system.web>

第四步:体验效果吧 今天就说到这里吧,还有一个URL重写的方法,有时间完成,大家赶快体验一下吧!!!

原文:http://blog.csdn.net/songyuhongnannan/article/details/7493499

ASP.NET HttpModule URL 重写 (一) 【Z】的更多相关文章

  1. ASP.net的url重写

    http://blog.csdn.net/windok2004/article/details/2432691 1. 有关于URL的重写,本文也只是拿来主意.相继有MS的组件“URLRewriter” ...

  2. asp.net 页面url重写

    不更改情况下,页面路径为index.aspx?id=1,现在输入页面路径index/1时,也能访问到页面,这一过程叫做url重写 ①:在一个类里制定路径重写规则,以下为自定义UrlRewriterFi ...

  3. (转)ASP.net的url重写

    1. 有关于URL的重写,本文也只是拿来主意.相继有MS的组件“URLRewriter”和在Global.asax里的“Application_BeginRequest()”编码方式,以及IIS里的I ...

  4. Asp.net实现URL重写

    原文:Asp.net实现URL重写 [概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读 ...

  5. ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL

    ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. ...

  6. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase

    原文地址:http://www.51csharp.com/MVC/882.html   ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL 引言-- 在初级篇中,我们 ...

  7. ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL

    ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流 ...

  8. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC ...

  9. ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 175人阅读 评论(0) 收藏

    一.功能说明: 可以解决类似 http://****/news 情形,Url路径支持正则匹配. 二.操作步骤: 1.增加URL重写模块: using System; using System.IO; ...

随机推荐

  1. 异常捕获 崩溃 Bugly ACRC 简介 总结 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. 探索Javascript异步编程

    异步编程带来的问题在客户端Javascript中并不明显,但随着服务器端Javascript越来越广的被使用,大量的异步IO操作使得该问题变得明显.许多不同的方法都可以解决这个问题,本文讨论了一些方法 ...

  3. JavaScript中textRange对象使用方法总结

    TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本.文本范围让您可以选择性的将字符.单词和句子从文档中挑选出来.TextRange对象 ...

  4. 3D视频的播放

    3D视频的播放 人眼产生立体效果的条件有两个: 1.须要左右眼两路影像,这两路影像是不同的.具有正确的视差: 2.进入左右眼的影像要全然分离.左影像进左眼,右影像进右眼. 第一条是对3D视频源提出的要 ...

  5. 65. XPages自定义控件(三)高级搜索之三

    RecordView控件的两个文件的完整代码在本文末尾给出.虽说完整,仅靠这两个文件,RecordView控件还不能正常工作,因为在这两个文件里还引用了其他自定义控件,调用了作为managed bea ...

  6. 使用SVD方法实现电影推荐系统

    http://blog.csdn.net/zhaoxinfan/article/details/8821419 这学期选了一门名叫<web智能与社会计算>的课,老师最后偷懒,最后的课程pr ...

  7. ACM~排列组合&amp;&amp;hdu例子

    排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式   P(n ...

  8. ASP入门(十一)-Session小案例

    一般来说,在实际开发中,对于 Session 对象使用最多的就是用户登录部分了,这个案例将简单模拟一个用户登录表单.用户是否登录的判断以及用户退出的一系列功能,它一共分了以下几个页面. Login.a ...

  9. 【摘录】在Windows平台上使用Objective-C

    虽然到目前为止最好的Objective-C 编码平台来自苹果公司,但它们绝不仅适用于苹果公司的平台.Objective-C 在Linux.BSD 甚至Windows 等其他平台都有相当久远的历史.根据 ...

  10. Github 基本操作

    .配置Git 首先在本地创建ssh key:$ ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@your ...