URL Routing和URL Rewriting两者之间的不同

  1. URL Rewrite是在request处理之前修改相应的URL,URL Rewrite模块本身不知道哪个HttpHandler处理这个请求,并且处理请求的HttpHandler也不知道自己处理的URL是原来的URL还是被重写过的地址。
  2. 和URL Rewrite正好相反,URL Routing是根据规则为URL来指定HttpHandler的,可以看做Routing是handler的高级映射。
  3. IIS URL Rewrite可以用于任何web程序的映射处理,包括但不限于asp.net,php,asp和静态文件等,但Routing只能处理基于.net的web程序。
  4. IIS URL Rewrite在IIS集成模式和经典模式都可 以用,但默认情况下Routing只能用在集成模式下,经典模式的话需要使用扩展名或者通配符将程序映射到IIS上(其实.net有另外一个组件aspnetfilter已经帮我们做好了)。
  5. IIS URL Rewrite可以根据域名,路径,Http Header,server变量等处理重写规则,但Routing只能按照请求的URL路径和HTTP-Method header来处理。
  6. IIS URL Rewrite可以执行处理HTTP跳转,处理自定义的Status Code以及Abort请求,但Routing做不到这些。
  7. IIS URL Rewrite的扩展只能扩展自己的Provider来自定义规则的存储,但Routing的扩展相对来说就非常强大了,MVC就是其中一种。

你可能感兴趣的:(asp.net)