天天看点

艾伟_转载:IIS URL Rewriting 和 ASP.NET routing(下)

  首先,如果我们的Web应用程序有任何除了ASP.NET之外的动态网页技术,那么选择是绝对明显的:用IIS URL重写模块(IIS URL-rewrite module)。否则的话,主要判断规则如下:

如果我们是基于一个已有的ASP.NET网站,而希望尽量不去更改它的话,请使用URL重写模块。因为URL重写模块能够在不更改现有程序的基础上对网站提供“用户友好”“搜索引擎友好”的URL。同样,它也允许我们创建重定向规则,用来重定向搜素引擎的爬虫到新的URL去。

  然而在实践中这两种技术并不是只能选择一个,他们往往还可以相辅相成。在接下来的章节中,我们将概述几个协同使用ASP.NET路由和URL重写模块的案例。

  下面的代码展示了这个案例中可能用到的URL重写模块配置代码:

  提供来自其它网站或其它服务器上的静态内容

  静态内容管理

  当我们网站中的静态内容移动到了一个新的地址时,我们常常还需要支持老的URL,以做到向后兼容,甚至我们并不想让用户感觉到文件或文件夹移动过了。这种情况下,我们可以使用URL重写模块来重写静态文件的路径,同时使用ASP.NET路由来处理所有的动态ASP.NET页面。

  阻止某些请求

  URL重写模块可以用来阻止某些情况下指定的请求,例如,我们可以阻止网站爬虫访问某些特定的URL路径。这种情况下,我们让被阻止的请求压根不到达ASP.NET的路由处理,如此来减少服务器的负载。

  下面的例子展示了如何配置URL重写规则,来阻止一个指定的网站爬虫。可以根据指定的user-agent HTTP头或者IP地址来进行阻止:

  尽管IIS URL重写和ASP.NET路由在功能上有一些重复,但它们在情景定位上和技术上是相互独立的。因此,这两种技术将作为IIS的独立组建持续存在并进一步发展,并且,两者有很大的集成潜力。例如,ASP.NET路由可能会参照URL重写模块强大的管理工具。而URL重写模块可能会与ASP.NET更好的集成,以提供更强大的扩展性和可自定义性。

  IIS URL重写和ASP.NET路由都能够用于Web应用程序的URL优化处理,但ASP.NET路由可以看作是一种ASP.NET的优化解决方案,因此,它是web开发人员设计友好URL的应用程序时的好选择。而IIS URL重写模块是一个通用的URL处理机制,定位于多种技术场景,特别是它能够让web开发人员和网站管理人员能够在不改动程序代码的情况下优化URL。

<a href="http://learn.iis.net/page.aspx/460/using-url-rewrite-module/" target="_blank">URL-rewrite module documentation and tutorials</a>

<a href="http://msdn.microsoft.com/en-us/library/cc668201.aspx" target="_blank">ASP.NET routing documentation</a>

<a href="http://www.asp.net/mvc/" target="_blank">ASP.NET MVC</a>

<a href="http://www.asp.net/DynamicData/" target="_blank">ASP.NET Dynamic Data</a>

<a href="http://learn.iis.net/page.aspx/460/using-url-rewrite-module/" target="_blank">Using URL Rewrite Module</a>

<a href="http://learn.iis.net/page.aspx/761/provide-url-rewriting-functionality/" target="_blank">Provide URL Rewriting Functionality</a>

<a href="http://learn.iis.net/page.aspx/498/rule-with-rewrite-map---rule-template/" target="_blank">Rule with Rewrite Map - rule template</a>

<a href="http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/" target="_blank">IIS URL Rewriting and ASP.NET routing</a>