Какой URL-рерайтер вы используете для ASP.Net? [закрыто]

Я посмотрел на несколько переписывателей URL для ASP.Net и IIS, и мне было интересно, что все остальные используют и почему.

Вот те, которые я использовал или смотрел на:

  • ThunderMain URLRewriter : использовался в предыдущем проекте, не имел той гибкости / производительности, которую мы искали
  • Ewal UrlMapper : используется в текущем проекте, но источник кажется заброшенным
  • UrlRewritingNet.UrlRewrite : похоже на приличную библиотеку, но из-за плохой грамматики документации я чувствую себя неловко
  • UrlRewriter.NET : это мой текущий фаворит, обладает большой гибкостью, хотя дополнительные функции, добавленные в регулярные выражения замены, немного изменяют стандартный синтаксис регулярных выражений .Net
  • Managed Fusion URL Rewriter : этот вопрос я обнаружил в предыдущем вопросе о переполнении стека, но пока не пробовал его, из примера синтаксиса он не представляется редактируемым через web.config
18.08.2008 14:32:12
11 ОТВЕТОВ
РЕШЕНИЕ

+1 UrlRewritingNET.URLRewrite - используется в нескольких сотнях сервисов / порталов / сайтов на одной коробке без проблем в течение многих лет! (@ Джейсон - это тот, о ком ты говоришь, верно?)

и я также использовал URLRewriter.NET на личном сайте и нашел его, ах, интересным. @travis, вы правы насчет измененного синтаксиса, но как только вы привыкнете к нему, это хорошо.

3
20.08.2008 09:09:50
У меня есть проблема с этим. мне нужно было перенаправить на другой сайт. Например: example.com/some3rdparty to somesite.com/with?alot&of¶meters Только для крошечного URL-адреса. Это невозможно сделать из коробки, необходимо внести изменения в источники. Поэтому я использовал ManagedFusion
AlfeG 13.06.2009 13:02:39
Также жестко закодированное название раздела «urlrewritingnet» стало большим сюрпризом T_T
AlfeG 13.06.2009 13:04:22
Это не невозможно Это просто требует самоотдачи и определения. Я полагаю, вы говорите о чем-то вроде следующего? <add virtualUrl = "^ ~ / some3rdparty" rewriteUrlParameter = "ExcludeFromClientQueryString" destinationUrl = "somesite.com/with?alot=$2&of=$3&parameters=$4.$5" ignoreCase = "true" /> или просто destinationUrl = "somesite.com/with?alot&of&parameters"? Конечно, есть кривая обучения, но эй, это одна из наиболее полных, которые я использовал. Routing и MVC рождены для совместного использования, и они определенно не помогут вам лучше в такой ситуации.
Pat Hermens 1.07.2009 23:47:50

Если бы я начинал новый веб-проект сейчас, я бы смотрел на использование MVC с нуля. Это использует переписанные URL-адреса в качестве стандарта.

4
18.08.2008 14:34:00

Есть System.Web.Routing, который был только что выпущен с .NET 3.5.

Вы можете просто использовать Request.RewritePath () в пользовательском HttpModule

Я предпочитаю использовать реализацию IHttpHandlerFactory и иметь полный контроль над всеми входящими URL-адресами и тем, где они отображаются.

7
20.08.2008 08:04:08

Я использовал UrlRewriting.NET раньше на сайте с очень большим трафиком - он отлично работал для нас. Я считаю, что разработчики немецкие, поэтому английская документация, вероятно, не так хороша, как могла бы быть. Я очень рекомендую это.

2
18.08.2008 15:15:01

У меня был хороший опыт работы с Ionic ISAPI Rewrite Filter, который очень похож на ISAPI_Rewrite, за исключением бесплатного. Обе моделируются после mod_rewrite и являются фильтрами ISAPI, поэтому вы не можете управлять ими в коде, так как вы должны настроить их в IIS.

2
18.08.2008 19:56:55

Я только что установил ISAPI Rewrite 3 от Helicon . Работает точно так же, как htaccess. Я до сих пор это понимаю.

1
23.08.2008 16:36:40

Я с большим успехом использовал .NET URL Rewriter и Reverse Proxy . Он почти на одном уровне с mod_rewrite и использует практически все тот же синтаксис. Владелец проекта очень услужливый и дружелюбный, а продукт отлично работает. Этот драгоценный камень предоставляет функции перезаписи и прокси, которые не предлагают многие решения. ИМО, стоит посмотреть.

1
7.01.2009 06:19:12

IIS 7 имеет модуль перезаписи URL, который достаточно эффективен и хорошо интегрируется с IIS.

3
27.02.2009 14:23:47
+1 за то, что ты новый школьник! Это то, что я использую. Будьте осторожны, если вы привыкли к UrlRewritingNet.Rewrite, поскольку Request.Url теперь является реальной страницей, а не запрошенной. Теперь вам нужен Request.RawUrl, чтобы получить URL, который был фактически запрошен
BritishDeveloper 13.04.2010 22:49:38

Я не рекомендовал бы UrlRewritingNet, если вы находитесь в среде IIS7 Windows 2008.

Причина: UrlRewritingNet требует, чтобы у вас режим пула приложений = Классический и НЕ был интегрирован. Это не оптимально. Кроме того, их проект кажется очень мертвым за последние 2 года.

2
14.10.2009 15:33:15
это не проблема для Windows 2008 R2, все сайты (более 50) работают в интегрированных пулах с UrlRewritingNet.UrlRewrite
balint 26.11.2013 18:43:52

+1 для UrlRewritingNet.UrlRewrite, но почему мне всегда нужно заканчивать свой URL-адрес .aspx? Я думаю, что это должно быть улучшено лучше регулярного выражения partern.

Почему я всегда должен заканчиваться aspx в virtualURL localhost / Products / Beverages.aspx "," localhost / Products / Condiments.aspx ". Я просто хочу ввести localhost / Products / Beverages", "localhost / Products / Condiments", который выглядеть как маршрут MVC.

Это выглядит хорошо, но он не работает для моего сайта. Я до сих пор не могу понять это.

0
26.05.2011 12:30:10
Завершение с .aspxиспользованием должно быть связано с ограничением IIS. В противном случае вам придется сопоставить .*использовать aspnet_isapi.dll. Многие хостинг-провайдеры не допускают этого, и это может привести к снижению производительности и некоторым другим странным особенностям, таким как PNG, обслуживаемые с неправильным типом пантомимы.
travis 26.05.2011 14:42:57

Маршрутизация 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"));

        }
0
25.08.2012 08:34:36