Подтвердить что ты не робот

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

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

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

  • ThunderMain URLRewriter: используется в предыдущем проекте, у него не было гибкости/производительности, которую мы искали
  • Ewal UrlMapper: используется в текущем проекте, но источник кажется заброшенным
  • UrlRewritingNet.UrlRewrite: кажется приличной библиотекой, но документальная плохая грамматика оставляет мне ощущение непросто.
  • UrlRewriter.NET: это мой текущий fav, имеет большую гибкость, хотя дополнительные функции, закачиваемые в заменяющие регулярные выражения, меняют стандарт. Чистый синтаксис регулярного выражения
  • Управляемый Fusion URL Rewriter: я нашел это в предыдущем вопросе при переполнении стека, но еще не пробовал, из синтаксиса примера, он не может быть доступен для редактирования через web.config
4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

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

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

Ответ 11

asp.net routing также выполняет требование перезаписи 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"));

        }