我正在制作一个新的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,我不知道选择哪个选项。
答案 0 :(得分:7)
我会为使用路由做出强有力的论据。它将请求 - 资源解析逻辑保留在您的应用程序中,因此在您需要时可以非常轻松地添加依赖于应用程序的逻辑,并且无需在应用程序和单独的配置资源之间保持同步。
路由works great with traditional webforms。
URL重写通常(但并不总是)是对问题的补偿,而不是解决方案 - 服务器软件和框架仍然围绕着代表物理资源的Web 页面的旧概念构建。但是,web 应用程序应react to requests as commands;但只有相对较新的现代网络框架才开始本地支持该模型。路由是这些发展之一。
答案 1 :(得分:2)
我强烈建议使用路由, 事实上,它将在下一版本的框架中与webforms更加集成。 由于首先缺少路由,因此URL重写更像是“黑客”。如果你已经有一个想要“闪亮”的项目,那么url重写就可以了。
但是从头开始,我肯定会使用路由。
路由会隐藏您的应用程序结构,并让您更多地考虑您的网址,作为您要显示的内容的路径,与使用params的某个页面的路径相对。 而且,在更改内容时,您不必跟踪两件事情,就像重写一样。
答案 2 :(得分:0)
答案 3 :(得分:0)
这取决于你是使用经典的ASP.Net还是新的MVC框架。我对MVC框架没有任何经验,但听起来它支持开箱即用的内容。
在经典的ASP.Net方面,我们目前正在使用名为ISAPI_Rewrite的IIS扩展。它的行为类似于Apache的mod_Rewrite,它们有一个免费版本,你可以使用它具有付费版本的大部分功能(100美元)。