15 января 2007

Url Rewriting в ASP.NET 2

Намедни делая небольшой сайт для знакомой стало ясно что мне понадобится для него модная нынче штука - UrlRewriting. Представляя себе как это делается в общих чертах я воодушевился и полез в Google.

Естественно, первое на что я наткнулся был встроенный в ASP.NET 2 UrlMapping, но почитав про него я понял, что его возможностей для меня будет мало. Сделав еще пару кликов мышью в SERP я набрел на замечательный модуль: UrlRewritingNet.UrlRewrite.

Основными его плюсами можно считать:

  • настройка через web.config с использованием RegEx
  • возможность добавления/изменения Rewrite правил на лету
  • правильная работа с Themes, MasterPages, Postback, Cookieless Sessions
  • необходимость доступа к IIS Manager только для Rewriting урлов без .aspx расширения

Приведу небольшой пример использования, который покажет насколько просто использовать этот модуль. Допустим, у нас есть страница news.apsx, которая выдает новости таким видом: news.aspx?id=13, а мы хотим сделать урл вида news/13.aspx. Для этого добавьте этот код в web.config в секцию <configuration>:

<configSections> <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" /> </configSections> <urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07" rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultProvider="RegEx"> <rewrites> <add name="News" virtualUrl="~/news/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/news.aspx?id=$1" ignoreCase="true" /> </rewrites> </urlrewritingnet>

Как видно из данного примера правило Rewrite задается простейшим RegEx выражением. В то же время RegEx дает потенциальную мощность и вы сможете создавать более сложные правила. К примеру такую /news/2007/01/15/url-rewriting.aspx ссылку вы сможете обрабатывать с помщью этого правила:

<rewrites> <add name="News" virtualUrl="~/news/(.*)/(.*)/(.*)/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/news.aspx?alias=$4" ignoreCase="true" /> </rewrites>

16 комментариев:

Анонимный комментирует...

а как его подключать?

SynteZZZ комментирует...

http://www.urlrewriting.net/download/UrlRewritingNet20.English.pdf
Все по шагам расписано

Анонимный комментирует...

да в том то и дело... что все прописал как там...
1. скопировал в bin
2.прописал в конфиге

и не работает... может что еще надо?

Анонимный комментирует...

Спасибо!
Это то что я искал!

Анонимный комментирует...

SynteZZZ, спасибо огромное :-)

Анонимный комментирует...

а вот как с помощью этой библиотеки сделать так, чтобы работали урлы вида
http://mysite.ru/23/345
.. чтобы урл не заканчивался расширением файла

SynteZZZ комментирует...

Необходимо прописать соответствующие правила реврайтинга и настроить IIS так, что бы он все запросы передавал обработчику ASP.NET. Как это сделать подробно написано в PDF, который поставляется вместе с UrlRewriting.Net. Так же скачать его можно тут: http://www.urlrewriting.net/download/UrlRewritingNet20.English.pdf

Анонимный комментирует...

А при больших нагрузках на сервер оптимально ли это - передавать все запросы на приложение ASP.NET?

SynteZZZ комментирует...

Ну естественно это создаст дополнительную нагрузку, но если исключить с помощью той же настройки из этих запросов .jpg, .gif, .js, .css и т д. После этого вредных запросов будет минимум.

Виталий Ф. комментирует...

хелп. у меня не работает POST на русских урлах. в инете есть решение - но оно не помогает...

Анонимный комментирует...

Новый Бесплатый Сайт с Видео для Взрослых
(Не требуется отсылка СМС)
[url=http://www.freefromdesire.ru]СМОТРЕТЬ[/url]
http://www.freefromdesire.ru

Анонимный комментирует...

 Куплю двигатель контрактный на Хундай соната (G4CP) или митсубиси 4G63 он подходит как родной,или запчасти от движка,поршень ,клапана и тд ,и акмм заинтересван приобрести ,также если можете подсказать или продать был бы вам признателен,вот моя ICQ 448122666 или почта totcam@mail.ru

hosting.web.hosti комментирует...

облачный хостинг http://hosting.miheeff.ru хостинг облачный хостинг

Анонимный комментирует...

Интересно написано....но многое остается непонятнымb

Анонимный комментирует...

разработка бизнеса разработка сайтов http://web-miheeff.ru разработка бизнеса

Анонимный комментирует...

порно new
прасмотр порно клипов
частное порно 3gp
бесплатное порно эротика фото
гламурная эротика фото
порно сайты томска
секс видео без регистрации смотреть
сын секс
порно попки
сиськи семинович