8

我正在制作一个新的 asp.net 网页表单网站,并想美化我的网址 - 我想接受一个像“www.mysite.com/1-2,3”这样的网址,然后把它变成这样的“ www.mysite.com/page.aspx?a=1&b=2&c=3"。就性能易于维护而言,哪个选项最适合此任务 - IIS7 Url Rewriting 或 Routing 。顺便说一句,我打算使用中等信任的共享主机 IIS7,也许是 6。

过去我使用 PHP 的 mod_rewrite,对此我很满意,但现在整个网站都被翻译成 ASP.NET,我不知道该选择哪个选项。

PS - 我已经读过这个这个,但是对我的问题还不够清楚。

4

4 回答 4

7

我会为使用路由提出强有力的论据。它将请求资源解析逻辑保留在您的应用程序中,因此在您需要时添加与应用程序相关的逻辑非常容易,并且无需在应用程序和单独的配置资源之间保持同步。

路由适用于传统的网络表单

URL 重写通常(尽管不总是)是对问题的补偿,而不是解决方案——服务器软件和框架仍然围绕旧的网页概念构建代表物理资源。但是,Web应用程序应该以命令的形式响应请求;但只是相对较新的现代 Web 框架才开始原生支持该模型。路由是这些发展之一。

于 2009-05-28T23:10:20.700 回答
2

我强烈建议使用 routing,实际上它会在下一个版本的框架中与 webforms 更加集成。由于缺乏路由,URL 重写更像是一种“hack”。如果您已经有一个想要“大放异彩”的项目,那么 url 重写就可以了。

但是当从头开始时,我肯定会使用路由。

路由隐藏了您的应用程序结构,让您更多地考虑您的 url,作为您想要显示的内容的路径,而不是带有参数的某些页面的路径。而且在更改内容时您不必跟踪两件事,就像重写一样。

更多在这篇文章

于 2009-05-28T23:49:13.570 回答
0

IIS 5/6 使用 ISAPI 过滤,它基本上相当于 IIS 的 mod_rewrite。听说IIS7的url重写比ISAPI更容易管理和配置。

于 2009-05-27T14:11:16.310 回答
0

这取决于您使用的是经典的 ASP.Net 还是新的 MVC 框架。我对 MVC 框架没有任何经验,但听起来它支持你正在寻找的开箱即用的东西。

在经典的 ASP.Net 方面,我们目前正在使用一个名为ISAPI_Rewrite的 IIS 扩展。它的行为类似于 Apache 的 mod_Rewrite,并且它们有一个免费版本,您可以使用它具有付费版本的大部分功能(100 美元)。

于 2009-05-28T23:04:39.260 回答