到目前为止,我们一直在使用custon 404页面重写URL:url不会映射到站点中的任何文件,我们将IIS配置为向aspx页面发送404错误,该页面将这些url重定向到正确的URL。
现在我们想停止使用重定向,所以在阅读了Scott Guthrie关于Url Rewriting的文章之后,我想在Global.asax中使用Application_BeginRequest。问题是我们的很多网址都没有重写,可以在没有任何干预的情况下到达正确的地方。我担心现在每个请求都必须通过Application_BeginRequest方法(即使是未重写的url),我担心它会减慢加载时间。
你怎么看?使用Application_BeginRequest时加载时间是一个问题吗?
答案 0 :(得分:4)
无论如何,每个请求都通过Application_BeginRequest。
您需要添加一些逻辑,以便只更改那些需要重写的页面。
这一小部分逻辑不会非常昂贵。
我已经习惯了,并没有注意到性能受到的影响。
答案 1 :(得分:3)
如果您打算更频繁地使用它并且模仿Apache模块mod_rewrite,那里有非常强大的解决方案,我喜欢这个,因为我已经使用它并且它没有给我带来任何问题:
或:
http://www.managedfusion.com/products/url-rewriter/
您可以在这篇文章中阅读更多选项:
正如约什所说,必不可少的文章是: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
答案 2 :(得分:3)
给可能遇到麻烦的其他人留言。确保
<modules runAllManagedModulesForAllRequests="true">
答案 3 :(得分:2)
那篇文章有点陈旧......现在.NET框架中有更好的方法。有趣的是我曾经做过你正在做的事情(劫持错误处理程序)。
http://www.singingeels.com/Blogs/Nullable/2007/09/14/URL_ReWriting_The_Right_Way_Its_Easy.aspx
这就是我认为你现在想做的事情。哦,关于性能......为你的页面时间增加大约0.00001秒。
答案 4 :(得分:1)