- 相关文章 (13)
- QBlog隐藏技巧 (2)
- 爱说说系列 (4)
- QBlog 开源发布 (3)
- QBlog版本发布 (8)
- QBlog 模板制作教程 (6)
- QBlog开发者视频教程 (6)
- 秋色园技术原理解析 (21)
- 啊哈
- スーパーコピーブランド専門ショップ時計 バッグ 財布N級品販売通販 全品送料無料!! 弊社は価値をつけてルイヴィトンを販売して、シャネル 、グッチなど。 ◆2018年は最も新型に人気があって、新しい素材の商品到着! 人気ブランド品大注目 ◆信用の第1、風格は多くて、品質は良いです! ◆運賃の無料(日本全国)が予約購入することを期待しています! ◆弊社の商品は絶対的な自信があります。 ぜひ、見てくださいね!! 海外スーパーコピーのスーパーコピー バッグ、アクセサリー スーパーコピー時計、貴金属の(リサイクル品)のスーパーコピー販売買取
- ルイヴィトン 財布スーパーコピー ようこそ ルイヴィトン スーパーコピー販売商店へいらっしゃいませ! 真心込めて最高 レベルのスーパーコピールイヴィトン偽物ブランド品をお届けしています。 安全税関対策+ 素早い配送+随時の在庫補給+丁寧な対応+スーパーコピー販売業界最低価格に挑戦 ! 当店は業界最高品質に挑戦!全商品はプロの目にも分からないルイヴィトン 財布スーパーコピーです。 ルイヴィトン財布コピー、ルイヴィトン 財布 ブランド偽物など世界 有名なバックコピー商品が満載! 当店のスーパーコピー商品は他店よりも質が高く、金額も安くなっております。 ご購入する度、ご安心とご満足の届けることを旨にしております よろしくお願いします ありがとうございます (*^__^*)
- 可以
- 不错,博主是大神,膜拜中
- 44
- 顶起来!一页文字,几载求索
- ACESS 我也是深恶痛绝,但还是不得不用
- 阿斯顿
- <label>上节回顾</label>
- 绑定一级域名(顶级域名)到秋色园QBlog博客教程(22743)
- 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)(22428)
- 秋色园QBlog技术原理解析:开篇:整体认识(一)(21281)
- 调查:是否支持秋色园QBlog走进开源博客之路(19981)
- Windows7下如何安装部署秋色园CYQBlog站点(15364)
- 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四)(14312)
- 开源博客-秋色园QBlog多用户博客系统安装视频教程(14061)
- 如何安装部署秋色园CYQBlog站点(13510)
- 秋色园QBlog技术原理解析:认识整站处理流程(二)(13315)
- 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七)(12984)
- 调查:是否支持秋色园QBlog走进开源博客之路(32)
- 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)(23)
- 秋色园QBlog技术原理解析:开篇:整体认识(一)(13)
- QBlog开发者视频教程:开篇-开发基础配置与系统运行(一)(13)
- CYQ.IIS 无需要安装IIS运行QBlog网站(13)
- Windows7下如何安装部署秋色园CYQBlog站点(12)
- 开源博客CYQ.Blog 秋色园QBlog 源码下载[免费开放24个下载码](11)
- 开源博客-秋色园QBlog多用户博客系统安装视频教程(10)
- 绑定一级域名(顶级域名)到秋色园QBlog博客教程(10)
- 如何安装部署秋色园CYQBlog站点(9)
文章回顾:
1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用
2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程
本节,将从 秋色园 的整站入口:UrlRewrite.dll入手解析无后缀原理。
鉴于园子里有很多UrlRewrite的文章,因此就不略为简单的讲解了:
一:用ISAPI筛选器:即网上第三方发布的比较常见的,如:RewriteEval.dll
秋色园早期的版本始于2007,使用的就是第三方的插件,随着创业公司的结束,沉默了2年。
回顾当年参与开发博客的一共有这么几种角色:
1:技术总监负责指导我写CYQ.Data,和指导另两名选手外挂js和中文转拼音,同时写了个页面基类
2:我负责博客用户后台,另一同事负责写博客前台
3:一女同事负责写js外挂
4:2个美工负责写了好几套模版
5:另一个同事折腾了个中文转拼音的。
6:一共花了3个月左右的时间,开发了出来。
以前7个人干的活,现在,我一个人干了,知道我有多不容易了吧。
2009年时,随着CYQ.Data的二次小改进,打算搭建个人博客,顺便把它更换数据层,却发现,实在是改不动,一个业务类就上万行代码,同事那“复制+粘贴”的强大,表现的是相当的淋漓尽致。
因此只好放弃改动,只删除一些不要的功能,然后重新定位了下URL,简单改造成单用户博客,还弄了个空间域名51xxdn,便宜没好货,150/一年的服务器三天两头就打不开,一天到晚是和客服沟通。一年后站点到期后我就扔了,连备案过的域名也不要了。
当年使用第三方插件时,遇到麻烦的地方:
需要把dll提交给客服,然后还要教客服的技术人员怎么添加,最可怕的是还要重启IIS才生效。
人家一个服务器放那么多网站,咋能随随便便的让要求重启IIS呢?可是不重启你的站点又又打不开,所以每次还要挑无中午吃饭的时间重启,重启后还是不行,不行咋折腾?过了一会客服技术又说行了,勉强运行了起来,后来发现该服务器还是相当的经常性的重启IIS,因为站点老是打不开。
还有每次修改代码修改或增加URL规则时,又得叫人家重启下IIS,唉,那个折腾,人家也折腾。
新版本的秋色园,为了避免这种情况,自然得使劲的考虑把它给弄掉,于是重写还是自己来。
二:IHttpModule的RewritePath方法
自己来,怎么来?用C++写个ISAPI会不会?答:不会。
还是老实的用.net写好了。
用IHttpModule很容易,很多人都用这个折腾,写个类继承自IHttpModule,然后到配置文件里注册一下就可以了,示例如下:
1:新建类库项目:起名:UrlRewrite
2:添加引用System.Web,因为IHttpModule在这名称空间下,而类库默认是没引用这个的
3:把Class1.cs更名为UrlRewrite.cs,并让类继承自IHttpModule,实现接口,最终如下:
把着我们把代码小小调整一下如:
#region IHttpModule 成员
public void Dispose()
{
//throw new Exception("The method or operation is not implemented.");
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpUrlRewrite(app.Context);
}
public void HttpUrlRewrite(HttpContext context)
{
string url = context.Request.Url.ToString();//用户请求的Url
//--这里要做很多Url逻辑处理
context.RewritePath("~/Default.aspx", null,"url="+url);
}
#endregion
上面的代码,意思为:
下面再建一个站点,来接受并输出结果:
4:添加新建网站起名:UrlRewriteDemo
5:添加对UrlRewrite项目的引用
6:F5一下,调出web.config,然后在配置文件添加配置项代码如下:
< add name="UrlRewrite" type="UrlRewrite.UrlRewrite,UrlRewrite" />
< /httpModules>
目前情况示例如图:
然后到Default.aspx写一行代码输出接收到的参数:
{
Response.Write(Request["url"]);
}
一切就绪,运行,我们看结果:
图1:请求默认存在的页面,输出结果,表示很正常
图2:随便请求一个不存在页面,输出了结果,表示也很正常
图3:请求一个连后缀都没有的Url,输出了结果,表示有点惊讶
从图3看出,看来VS2005集成的IIS对所有的请求都统一处理了,所以连无后缀的也能处理
重点说明:
IIS6下如何添加见:如何安装部署秋色园CYQBlog站点
从以上解析的内容可以看出,已经可以截取到用户输出的任意请求地址,包括无后缀。
那么秋色园具体是如何处理各种请求的,读取配置文件得用正则解析还是说其它?
见下篇为你解析内部实现原理,敬请关注。
最后是示例代码下载: UrlWrwriteDemo.rar
下一篇:秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序
这么做不会造成性能问题嘛。。