asp空间端口映射虚拟服务器端口映射


在理想的情况下,我们第一次设计完美的设计好程序了。页面将会在适当的文件夹里被创建并且呆在那里。用户将不会去在意我们程序中的页面的URL。所以我们可以把页面放在任何想放的地方,而不用去担心页面的URL问题。

在实际情况中,事情没有这么简单。你也许会在你发布程序之后,发现你要去认真的决定你的文档架构。作为解决办法之
一,用户可能会愿意看到这样的URL,

幸运的是,ASP.NET2.0推荐了一种新的工具去解:URLmapping。在这里,我将展示如何在一个站点使用URLmapping。我还将展示这种技术的局限性与这些局限性的解决办法。

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

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

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

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

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

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

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