摘要:一:定位系统 从上节知道, 重定向原理,是将一个原始任意的请求,定位到相应的处理程序中,这个处理程序可以是aspx,也可以是ashx。 从图中将可看到有很多的ashx处理程序,这些处理程序,是如何被安排工作的呢? 请看:内部URL定位系统: 原来在V2.5之前,只存在一个主站,后来增加了“健康频道”之后,更改原来策略,将主站改造为一个频道,技术频道,于是出现三个频道: 技术频道、健康频道、用户频道。 根据配置文件,你可以将主站定位到任意频道中,简单说
一:定位系统
从图中将可看到有很多的ashx处理程序,这些处理程序,是如何被安排工作的呢?
请看:内部URL定位系统:
原来在V2.5之前,只存在一个主站,后来增加了“健康频道”之后,秋色园更改原来策略,将主站改造为一个频道,技术频道,于是出现三个频道:
技术频道、健康频道、用户频道。
根据配置文件,你可以将主站定位到任意频道中,简单说本无主站,只是你把www指向某个频道,于是某个频道就成了主站,如此的处理方式,有利于扩展N个频道内容,而主站,只要任意指定即可。
二:重定向的内部逻辑
了解了定位系统方向之后,要解析的就是内部细节要处理的问题了。
当UrlRewrite接到一个陌生的请求时,需要做以下的事情:
1:判断本URL是否需要定位
简单的分析为:如果是图片/js/css等,你需要直接return,因为不需要重定向。
而有一些简单需要重定向:比如直接.mdb,.ashx类型的文件时,你可以重定向到error.ashx去处理,告知用户不允许直接访问。
2:分析URL,是主站请求,还是用户请求
因为主站请求和用户请求是有区别的,
那就得分析了,就是将主站关键字存起来,不是关键字的都定为用户,同时将长度小于4的为系统预留。
3:分离关键参数
分了3个参数:u={0}&type={1}& para={2}
3.1:用户名:从URL中找出分类关键字用户名
示例:如URL为以下形式的请求:
qblog.cyqdata.com
www.cyqdata.com/qblog
需要从中分离出u=qblog,如果取出的是系统关键字,则为空
3.2:类型:从URL中找出分类关键字如:article、phpto、health、tech等
需要从中分离出type=article或type=photo,如果没有,默认就是index
3.3:原始请求地址:
4:其它细节处理
除了以上的关键点之外,秋色园还处理了其它很多杂七杂八的细节,例如:
4.1:虚拟目录
这是什么情况?
出现的情况?
在获取请求物理路径时,会多出一层的虚拟目录,导致很多问题。
比如你一个A文件链接为:href="/qblog",正常解析为www.cyqdata.com/qblog
如果你是放在子目录站点,将解析为www.cyqdata.com/目录名字/qblog
解决方法
采用配置方式,然后在请求时移除子目录名。
总结:
本节介绍了定位系统,并分析其定位的基本URL解析重定向体系,从中我们可以看到,并没用采用配置文件+正则的方法解析,而是采用通过解析url,进行手工分类,并定位到相应的处理程序中的方法实现。
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28