网址重写与路由

时间:2009-05-27 13:41:11

标签: asp.net url-rewriting url-routing

我正在制作一个新的asp.net网络表单网站,并希望美化我的网址 - 我想接受像这样的网址“www.mysite.com/1-2,3”并将其转为一个像这样的“www.mysite.com/page.aspx?a=1&b=2&c=3”。哪个选项最适合此任务 - IIS7 URL重写或路由性能易于维护。顺便说一句,我打算使用中等信任共享主机IIS7,也许是6。

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

PS - 我已经阅读了thisthis,但是对于我的问题并不清楚。

4 个答案:

答案 0 :(得分:7)

我会为使用路由做出强有力的论据。它将请求 - 资源解析逻辑保留在您的应用程序中,因此在您需要时可以非常轻松地添加依赖于应用程序的逻辑,并且无需在应用程序和单独的配置资源之间保持同步。

路由works great with traditional webforms

URL重写通常(但并不总是)是对问题的补偿,而不是解决方案 - 服务器软件和框架仍然围绕着代表物理资源的Web 页面的旧概念构建。但是,web 应用程序react to requests as commands;但只有相对较新的现代网络框架才开始本地支持该模型。路由是这些发展之一。

答案 1 :(得分:2)

我强烈建议使用路由, 事实上,它将在下一版本的框架中与webforms更加集成。 由于首先缺少路由,因此URL重写更像是“黑客”。如果你已经有一个想要“闪亮”的项目,那么url重写就可以了。

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

路由会隐藏您的应用程序结构,并让您更多地考虑您的网址,作为您要显示的内容的路径,与使用params的某个页面的路径相对。 而且,在更改内容时,您不必跟踪两件事情,就像重写一样。

更多this article

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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