分享
 
 
 

UrlRewrite(地址变换)技术在IIS 5.0/ASP平台上面的应用

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在聊这个技术问题前,我不由得想起一个可笑的故事。NetCraft曾经做了一个测评,这个测评根据比较大量网站页面的扩展名是ASP.NET的还是JSP/Servlet的,得到了一个结论,现在ASP.NET的应用超过了JSP/Servlet。

这个测评引发了大量的讨论,很多用JSP的技术人员嘲笑这个测评。因为这个测评的结论忽略了一个很大的问题。那就是,JSP开发的网站的页面,一定是.jsp么?

答案当然是否定的。特别是mvc结构的网站常常都是没有.jsp扩展名的,这是一个惯例了。如果不是为了避免混淆,我们甚至可以让JSP的引擎来解析扩展名为aspx的jsp程序,或者让ASP.NET的引擎来解析扩展名为jsp的ASP.NET程序。唯一需要做的就是在服务器的管理工具上面做一些选择,或者修改配置文件等等。

另外,我们还可以用更强大的技术UrlRewrite,来把动态页面的地址变成象一个静态页面一样,或者把动态页面的参数,变成静态页面地址中的路径名或者文件等等。所以,有时候,请不要太相信你的眼睛,只要服务器管理员想做,那么也许某个.htm地址其实是一个 ASP.NET程序,某个.doc其实是一个JSP程序。眼见并不一定为实。

UrlRewrite是怎么样发生作用的?

简单的说,一个web server的工作就是根据用户请求的地址发送一个文件,或者运行一个cgi/脚本,并把运行结果发送给用户。加入了UrlRewrite功能的web server的工作流程略有变化,首先是看用户请求的地址是否包括在我们的替换规则里面。如果在,先把用户请求的地址进行改变,然后服务器按照新的地址进行文件传送或者cgi/脚本执行。参看下图:

UrlRewrite有什么用处?

1、满足搜索引擎的要求

某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111 变成 http://server/news/111.htm 这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。

2、隐藏技术实现,提高网站的移植性

每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。

3、满足美感的要求

对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如 http://server/news.asp?channel=3&id=111 的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成 http://server/news/3/111.htm 。

IIS 5.0支持UrlRewrite么?

答案很简单,不支持。但是我们可以通过安装服务器扩展让IIS支持。

目前有两种产品支持IIS 5.0的UrlRewrite,isapi_rewriteIIS Rewrite

我们采用isapi_rewrite Lite Version(免费版本)。

如何进行UrlRewrite的设置?

isapi_rewrite利用正则表达式进行替换规则的表示。

下面是一个简单的例子,我想让我们的用户输入 http://server/test-12314.html 实际上访问的是 http://server/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp\?id=$1 。

进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。如下图:

做好了匹配表达式和格式化表达式,我们可以按照下面的格式,把它们放到安装目录下的httpd.ini里面。

格式:RewriteRule 匹配表达式 格式化表达式

刚才的例子:RewriteRule /test-([0-9]*).html /test.asp\?id=$1

文件保存后,不需重新启动iis即可生效。

参考资料:

面向Google(Search Engine Friendly)的URL设计

http://www.chedong.com/tech/google_url.html

ISAPI REWRITE文档

http://www.isapirewrite.com/docs/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有