2008-08-18 8 views
14

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

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

  • ThunderMain URLRewriter: используется в предыдущем проекте, не достаточно иметь гибкость/производительность, которую мы искали
  • Ewal UrlMapper: используется в текущий проект, но источник, похоже, отказался от
  • UrlRewritingNet.UrlRewrite: кажется достойной библиотекой, но бедна грамматика ДОКУМЕНТАЦИИ оставляет меня чувством беспокойства
  • UrlRewriter.NET: это мой нынешний любимчик, имеет большую гибкость, хотя дополнительные функции, закачиваемые в замещающие регулярные выражения, меняют стандартный синтаксис регулярного выражения .Net.
  • Managed Fusion URL Rewriter: Я нашел этот код в previous question при переполнении стека, но еще не опробовал его из примера синтаксис, он не представляется редактируемым через web.config

ответ

3

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

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

+0

У меня проблема с этим. Мне нужно было перенаправить на другой сайт. Например: http://example.com/some3rdparty в http://somesite.com/with?alot&of¶meters Просто для крошечного URL Это невозможно сделать из коробки, то должны быть изменения в источниках. Поэтому я использовал ManagedFusion – AlfeG 2009-06-13 13:02:39

+0

. Также название жесткой кодировки «urlrewritingnet» было большим сюрпризом. T_T – AlfeG 2009-06-13 13:04:22

+0

Это не невозможно. Это просто требует самоотверженности и определения. Я бы предположил, что вы говорите о чем-то вроде следующего? <добавить virtualUrl = "^ ~/some3rdparty" rewriteUrlParameter = "ExcludeFromClientQueryString" DestinationUrl = "somesite.com/with?alot=$2 & из = $ 3 & параметров = $ 4 $ 5" IgnoreCase = "истинный" /> или просто destinationUrl = "somesite.com/with?alot & из & параметров"? Конечно, есть кривая обучения, но, эй, это один из наиболее полных, которые я использовал. Маршрутизация и MVC рождаются для совместного использования, и они, безусловно, не помогут вам в этом. – 2009-07-01 23:47:50

4

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

7

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

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

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

2

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

2

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

1

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

3

IIS 7 имеет URL Rewrite Module, который является достаточно способным и хорошо интегрируется с IIS.

+0

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

2

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

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

0

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

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

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

0

asp.net routing выполняет требование перезаписи URL и даже намного больше. С маршрутизацией asp.net вы не можете просто «переписать URL», но создавать пользовательские обработчики для различных запросов. asp.net routing однако требуется по крайней мере 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")); 

     } 

 Смежные вопросы

  • Нет связанных вопросов^_^