我已经看了几个URL重写器用于ASP.Net和IIS,并想知道其他人使用,以及为什么。
下面是我用或看的那些:
- ThunderMain URLRewriter :在以前的项目中使用,并没有完全具备灵活性/性能,我们正在寻找
- Ewal UrlMapper :在当前项目中使用,但似乎源被遗弃
- 使用UrlrewritingNet.UrlRewrite :似乎是一个体面的库,但文档的可怜语法让我感到不安
- UrlRewriter.NET :这是我目前的最爱,具有很大的灵活性,虽然抽入更换regexs额外的功能改变了标准的.NET正则表达式的语法有点
- 管理融合网址重写 :我发现这是在前面的问题上堆栈溢出,但还没有尝试过了呢,从实例语法中,它似乎并没有被通过的web.config编辑
+1使用UrlrewritingNet.UrlRewrite - 在一个盒子几百服务/门户网站/网站没有问题,使用了很多年! (@Jason - 这是你在谈论的一个吧?)
并且我还使用了URLRewriter.NET上一个个人网站,并发现它啊,有意思。 @travis,你说得对改变的语法,但一旦你习惯了它,这是很好的。
有刚使用.NET 3.5发布System.Web.Routing。
你可以在自定义的HttpModule使用Request.RewritePath()
我更喜欢使用IHttpHandlerFactory实施,并已超过所有传入的URL完全控制并在他们映射到。
如果我开始一个新的web项目,现在我会考虑使用MVC从头开始。 使用重新编写的URL为标准。
IIS 7具有URL重写模块是相当能够并用IIS很好地集成。
我以前用过UrlRewriting.NET在一个非常高流量的网站 - 它为我们伟大的工作。 我相信开发商是德国人,所以英文文档可能不是好,因为它可能是。 我强烈推荐它。
我有一个很好的经验离子的ISAPI重写过滤器 ,这是非常相似的ISAPI_Rewrite,除了免费的。 两者都mod_rewrite的蓝本,并ISAPI筛选器,所以你不能在代码管理它们,你必须让他们开IIS。
我不建议UrlRewritingNet,如果你是在IIS7的Windows 2008环境。
原因:UrlRewritingNet要求您的应用程序池模式=经典而不融合。 这是不是最佳的同时,他们的项目似乎很死,去年2年。
我刚安装了赫利的ISAPI重写3 。 作品酷似htaccess的。 到目前为止,我陷了。
我使用.NET URL重写和反向代理服务器取得了巨大成功。 这几乎看齐的mod_rewrite和使用几乎所有的语法相同的的。 该项目的业主是非常有益的和友好和产品的伟大工程。 这种宝石同时提供了重写和代理功能,其中有许多解决方案不提供。 IMO,值得一看。
+1使用UrlrewritingNet.UrlRewrite太多,但为什么我总是需要结束我用的.aspx网址? 我认为应该更好地改进正则表达式partern。
为什么我总是在virtualURL本地主机/产品/ Beverages.aspx ASPX结束“‘本地主机/产品/ Condiments.aspx’我只是想键入localhost /产品/饮料”,‘本地主机/产品/调味品’,这像MVC路线。
这一个看起来不错,但它不工作为我的网站。 我仍然无法弄清楚。
asp.net路由提供URL重写以及甚至比更多的要求。 随着asp.net路由你不能只是“重写URL”,但创造的各种要求定制处理器。 然而asp.net路由至少需要asp.net SP1。
您为一个简单的路由工作做的基本就是添加连的Global.asax.cs文件中在Application_Start几个途径处理。
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
private static void RegisterRoutes(RouteCollection routes)
{
routes.Add("Routing1", new Route("/Blog/id/2","/Blog.aspx"));
}