urlMappings(转)

URL Mapping in Action

动态中的URL 映射(Mapping)

让我们用Widgets页面作为例子。


图1展示了一个非常简单的ASP.NET 2.0 应用程序


默认的,Widget.aspx页面将可以用~/Products/W/Widget.aspx(在这里的第一个字符~代表了网站根目录的路径)问的。在ASPNET 2.0中的新特性就是你可以通过程序中的 web.config 文件来改变你的路径。为了做到这个程序,你需要在<system.web>中添加一个<urlMappings> 部分。这里有你做MAPPING过程中想要的代码。

<system.web>

<urlMappings enabled="true">

<add url="~/Widget/aspx" mappedUrl="~/Products/W/Widgets.aspx"/>

</arlMappings>

</system.web>



<system.web>

<urlMappings enabled="true">

<add url="~/Widget/aspx" mappedUrl="~/Products/W/Widgets.aspx"/>

</arlMappings>

</system.web>

在<urlMappings>部分,你可以有很多的<add>部分,每个这样的部分都有一个URL属性,这个属性指定了用户将要输入的URL,还有一个mappedUrl的属性,这个属性指定了实际的URL。这个实际的URL是代替用户输入URL的,是应用程序要传递的,

图2展示了在这样的情况下用户输入指定的URL的结果。

注意通过asp.net 的事件已经传递了映射的URL,那个用户输入的URL仍然显示在浏览器的地址栏上。

The Limits of URL Mapping



URL映射的局限性

URL映射的主要局限,就像运行在ASP.NET 2.0 中一样,是一个纯粹的静态技术,不带任何的通配符。你可以包含一个查询在URL中(例如,有可能映射~/Products/Widget.aspx 到 ~/Products.aspx?ProductID=widget)。可是你不能设置一个映射,然后用正则表示式去改变相所有的相似URLs 到相似的映射的URLs。对于许多应用程序来说,这是很严格的,绝大多数的决定性的局限相当地削弱了URL映射的效用。

为什么会有这样的局限? 微软的Scott Guthrie在他的博客中解释,公司计划在IIS 7.0中提供全面的URL重写的特性。IIS 7.0 将预定做为Longhorn Server (操作系统)的一部分装载。随着未来几年内的Longhorn Server的完成,微软不会为了这个系统的发布,而让ASP.NET 2.0 的队伍去解决可测量性跟安全性方面的问题。

灵活的URL 重写

幸运的是,你不用因为得到更多的灵活的URL重写而去等Longhorn Server的发布。今天,这里有几种的解决方安可以帮助你如果你需用正则表达式去做ASP.NET 2.0 URL重写。

为了那些初学者,很多ASP.NET的开发人员已经完成了他们自己的,针对带着RegEx 支持的URL 重写的HTTP模块。我已经看了其中的一个,它对于的ASP.NET 2.0的其它特性(像 THEMES)的大部分支持可以在Albert Weinert and Thomas Bandt的UrlRewritingNet namespace中找到。这个开源的部件仍然要在web.config文件的规则去配置,但现在,这个规则可以使用正则表达式去匹配或者替代。例如,这儿有几个有正在使用这个构件的有效规则



<rewrites>

<add virtualUrl="^~/(.*)/(.*).aspx"

rewriteUrlParameter="StoreInContextItems"

destinationUrl="~/$2.aspx?language=$1&parameter=$2"

ignoreCase="true" />

</rewrites>

这个规则将映射一个URL ~/English/Add.aspx到一个~/Add.aspx?language=English&meter=add

要拥有更多的灵活性,你可以去看看商业ISAPI_rewrite URL 处理机制。 带HTTP模式的解决方安的问题之一就是只对ASPX文件有效(或者其他的一些可以传递给ASP.NET机制的文件)。因为它是作为一个ISAPI的过滤器。 ISAPI_rewrite可以任何发给IIS的URL。这个可以允许你去应用基于正则表达式的重写技术到任何的文件类型,例如,如果你需要带着查询参数重定位图像文件或者映射 .html URL 到 .aspx页面,这个工具可以做这样的工作。ISAPI_rewrite 有测试版跟商业版($69),可以解决大多熟运行在单个服务器上的网站所遇到的问题。

一个值得知道的技术

URL rewriting 是一个很有用的工具,你最好把它想成一个可以使你网站从给网站用户的逻辑表达到你网站的物理布局简单化。有了WURL rewriting技术,你可以像你的用户提交一个友好的,简短的URLs到浏览器。 可以在你的源代码树中仍然使用很长,详细的,有组织的URLS。

你可以用Microsoft的原来自带的ASP.NET 2.0 的URL解决方法,或者你需要更灵活的,已经在本文中指出的,经过评估的那些软件,这取决于你对URL rewriting的需要的复杂度。你将觉得这些软件对你很有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值