关于UrlRewrite重写url

  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即可生效。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值