C#, asp net.ajax разработка web-приложений, Javascript CSS
 
Задать вопрос asp.net ajax C#

Рубрики


Статьи


Подписка


Подписаться по RSS

Архив

 Полный архив по категориям

Популярные записи


Мои рекомендации



Одним из наиболее популярных расширений сервера Apache  является mod_rewrite - фильтр, который подменяет URL страницы, например URL
http://www.apache.org/BookDetails.pl?id=5
можно представить в виде
http://www.apache.org/Book/5.html 

Для ASP.NET есть несколько реализаций URL Rewrite и об одном из них я и раскажу.

ThunderMain.URLRewriter - URL rewrite для ASP.NET

Краткая инструкция по использованию

  1. Дня начала его нужно скачать (ThunderMain.URLRewriter.rar) и распаковать в bin. 
  2. В global.asax на событие Application_BeginRequest добавляем вызов
  3. protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        ThunderMain.URLRewriter.Rewriter.Process();
    }
  4. Открываем web.config
  5. В секцию <configSections> добавляем
  6. <sectionGroup name="system.web">
    <section name="urlrewrites" type="ThunderMain.URLRewriter.Rewriter,
    ThunderMain.URLRewriter, Version=1.0.783.30976,
    Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/>
    </sectionGroup>
    (напомню, что секция <configSections> идёт всегда самой первой в секции <configuration>)
  7. Ну и теперь добавляем в секцию <system.web> сами правила замены, которые основаны на регулярных выражениях
    <system.web>
    <urlrewrites>
    <rule>
    <url>/listen/(.*)\.mp3</url>
    <rewrite>/listen.aspx?id=$1</rewrite>
    </rule>
    </urlrewrites>
    В этом примере ссылки вида /listen/333.mp3 заменяется на /listen.aspx?id=333
  8. Теперь остаётся последний шаг - настройка IIS. Для этого нам нужно добавить в список маппингов наше новое расширение, в случае приведённом выше это .mp3. Для этого открываем IIS, выбираем свойства нашего приложения и на закладке Home dirrectory жмём кнопку Configuration. Откроется такое окошко:



    Выбираем к примеру .aspx расширение и двойным кликом по нему открываем свойства и копируем путь к aspnet isapi фильтру, который обычно выглядит так
    c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
    После этого жём Add... и заполняем форму как на картинке

     

Всё, теперь можно открывать браузер и проверять, введя ссылку
http://localhost/listen/1.mp3
по этой ссылке обработка запроса будет передана форме
/listen.aspx с параметром id=1

PS. К сожалению не обошлось без глюков, в моём случае проблема возникла при использовании ajax.asp.net который пытаясь получить JS код по ссылке /WebResource.axd?d=... получал пустой ответ. Для этого случая лучше поставить фильтр на расширения в методе Application_BeginRequest, в моём случае это выглядело так

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        string url = Request.Url.ToString();
        if (url.IndexOf(".mp3") < 0) return;
        ThunderMain.URLRewriter.Rewriter.Process();
    }
Tuesday, August 28, 2007 10:08:44 AM (E. Europe Standard Time, UTC+02:00)
Удобная щтука URL rewriting. С такой библиотекой и заморачиваться не надо.
Машина в кредит
Saturday, September 29, 2007 9:52:10 PM (E. Europe Standard Time, UTC+02:00)
А что делать, если в запросе будет не один параметр id, а еще, например, параметр categoryid?
Tuesday, January 08, 2008 11:40:55 AM (E. Europe Standard Time, UTC+02:00)
dfbdfb dfbg
Comments are closed.