我看过ASP.Net和IIS的几个URL重写器,并想知道其他人使用什么,以及为什么。
以下是我使用或查看过的内容:
答案 0 :(得分:7)
System.Web.Routing刚刚与.NET 3.5一起发布。
您可以在自定义HttpModule
中使用Request.RewritePath()我更喜欢使用IHttpHandlerFactory实现,并且可以完全控制所有传入的URL以及它们映射到的位置。
答案 1 :(得分:4)
如果我现在开始一个新的Web项目,我将从头开始考虑使用MVC。它使用重写的URL作为标准。
答案 2 :(得分:3)
+1 UrlRewritingNET.URLRewrite - 在单个盒子上的数百个服务/门户/网站中使用多年没有问题! (@Jason - 那是你正在谈论的那个,对吗?)
我也在个人网站上使用了URLRewriter.NET,发现它很有趣。 @travis,你对改变的语法是正确的,但是一旦你习惯它,它就会很好。
答案 3 :(得分:3)
IIS 7具有相当强大的URL Rewrite Module并且与IIS集成良好。
答案 4 :(得分:2)
我之前在一个人流量很大的网站上使用过UrlRewriting.NET - 它对我们很有用。我相信开发人员都是德国人,所以英文文档可能没那么好。我强烈推荐它。
答案 5 :(得分:2)
我对Ionic's ISAPI Rewrite Filter有很好的体验,这与ISAPI_Rewrite非常相似,除了免费。两者都是在mod_rewrite之后建模的,并且是ISAPI过滤器,因此您无法在代码中管理它们,因为您必须在IIS中进行设置。
答案 6 :(得分:2)
如果您在IIS7 Windows 2008环境中,我不推荐使用UrlRewritingNet。
原因: UrlRewritingNet要求您的应用池模式=经典且未集成。 这不是最佳选择 此外,他们的项目在过去两年似乎已经死了。
答案 7 :(得分:1)
我刚刚安装了Helicon's ISAPI Rewrite 3。与htaccess完全一样。到目前为止,我正在挖掘它。
答案 8 :(得分:1)
我使用.NET URL Rewriter and Reverse Proxy取得了巨大成功。它几乎与mod_rewrite相同,并且几乎使用了所有相同的语法。该项目的所有者非常有帮助和友好,产品很好。这个gem提供了重写和代理功能,许多解决方案都没有提供。 IMO,值得一看。
答案 9 :(得分:0)
为UrlRewritingNet.UrlRewrite +1,但为什么我总是需要用.aspx结束我的网址?我认为应该改进更好的正则表达式。
为什么我总是必须在virtualURL localhost / Products / Beverages.aspx“,”localhost / Products / Condiments.aspx“中以aspx结尾。我只想输入localhost / Products / Beverages”,“localhost / Products / “看起来像MVC路线的调味品。
This一看好,但它不适用于我的网站。我还是想不出来。
答案 10 :(得分: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"));
}