14

我查看了几个用于 ASP.Net 和 IIS 的 URL 重写器,想知道其他人都在使用什么,以及为什么。

以下是我用过或看过的:

4

11 回答 11

7

System.Web.Routing 刚刚随 .NET 3.5 发布。

您可以在自定义 HttpModule 中使用 Request.RewritePath()

我更喜欢使用 IHttpHandlerFactory 实现,并且可以完全控制所有传入的 URL 以及它们映射到的位置。

于 2008-08-18T14:35:13.120 回答
4

如果我现在开始一个新的 Web 项目,我会考虑从头开始使用 MVC。这使用重写的 URL 作为标准。

于 2008-08-18T14:34:00.750 回答
3

+1 UrlRewritingNET.URLRewrite - 在一个盒子上的数百个服务/门户/站点中使用多年,没有问题!(@Jason——你说的是那个,对吧?)

而且我还在个人网站上用过URLRewriter.NET,发现它,啊,很有趣。@travis,您对更改的语法是正确的,但是一旦习惯了它,那就很好了。

于 2008-08-20T09:09:50.953 回答
3

IIS 7 有一个相当强大的URL 重写模块,并且与 IIS 集成得很好。

于 2009-02-27T14:23:47.270 回答
2

我之前在一个流量非常大的网站上使用过 UrlRewriting.NET - 它对我们非常有用。我相信开发人员是德国人,所以英文文档可能没有它应该的那么好。我强烈推荐它。

于 2008-08-18T15:15:01.480 回答
2

我对Ionic 的 ISAPI 重写过滤器有很好的体验,它与 ISAPI_Rewrite 非常相似,除了免费。两者都是在 mod_rewrite 之后建模的,并且是 ISAPI 过滤器,因此您无法在代码中管理它们,因为您必须在 IIS 中设置它们。

于 2008-08-18T19:56:55.013 回答
2

如果您在 IIS7 Windows 2008 环境中,我不会推荐 UrlRewritingNet。

原因:UrlRewritingNet 要求您的应用程序池模式 = 经典且未集成。这不是最优的而且,他们的项目在过去 2 年里似乎已经死了。

于 2009-10-14T15:33:15.900 回答
1

我刚刚安装了Helicon 的 ISAPI Rewrite 3。与 htaccess 完全一样。到目前为止,我正在挖掘它。

于 2008-08-23T16:36:40.590 回答
1

我使用.NET URL Rewriter 和 Reverse Proxy取得了巨大成功。它几乎与 mod_rewrite 相当,并且使用几乎所有相同的语法。该项目的所有者非常乐于助人和友好,并且产品效果很好。这个 gem 提供了重写和代理功能,这是许多解决方案不提供的。海事组织,值得一看。

于 2009-01-07T06:19:12.420 回答
0

也为 UrlRewritingNet.UrlRewrite +1,但为什么我总是需要用 .aspx 结束我的 URL?我认为应该改进更好的正则表达式部分。

为什么我在 virtualURL localhost/Products/Beverages.aspx", "localhost/Products/Condiments.aspx" 中总是要以 aspx 结尾。我只想输入 localhost/Products/Beverages", "localhost/Products/Condiments" 哪个看起来像 MVC 路线。

这个看起来不错,但不适用于我的网站。我还是想不通。

于 2011-05-26T12:30:10.950 回答
0

asp.net 路由也可以满足 url 重写的需求,甚至更多。使用 asp.net 路由,您不仅可以“重写 url”,还可以为各种请求创建自定义处理程序。然而,asp.net 路由至少需要 asp.net sp1。

要使简单路由正常工作,您所做的基本操作是在 Application_Start 中添加一些路由处理程序,甚至在 Global.asax.cs 文件中也是如此。

 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"));

        }
于 2012-08-25T08:34:36.483 回答