asp.net URL-адрес переписывается динамически с использованием httphandler / httpmodule

У меня есть приложение asp.net, и мне нужно сделать следующее:

Предположим, у меня есть страница с именем page1.aspx, мне нужно, чтобы:

когда пользователь запрашивает перенаправление page1.aspx? id = 1 на http://myapp/books

когда пользователь запрашивает перенаправление page1.aspx? id = 2 на http://myapp/movies

книги и фильмы - это виртуальные пути, и я не хочу делать это с помощью web.config (раздел rewite), поскольку он должен быть динамическим.

любая помощь будет оценена


person Ali Issa    schedule 12.10.2012    source источник


Ответы (1)


Создайте HttpModule, и в context_BeginRequest вы сможете получить текущий URL. Позже условное перенаправление на новый URL.

public class RedirectionModule : IHttpModule
{
    void context_BeginRequest(object sender, EventArgs e)
    {

      // get current url
      // conditionally redirect it
    }
}

[Edit] для переписывания URL-адресов SEO в ASP.NET см. URL-адреса SEO для перезаписи ASP.NET страница

person Jomy John    schedule 12.10.2012
comment
Я сделал это, проблема в том, что RewritePath не работает - person Ali Issa; 12.10.2012
comment
Вы можете объяснить, что происходит, когда вы его перенаправляете. - person Jomy John; 12.10.2012
comment
Когда вы запустите свой окончательный URL-адрес (http: / / myapp / movies) напрямую, он покажет действительный результат или выдаст ошибку? - person Jomy John; 12.10.2012
comment
конечно, это выдаст ошибку, фильмов не существует, я пытаюсь сделать дружественные URL-адреса для поисковых систем - person Ali Issa; 12.10.2012
comment
пожалуйста, обратитесь по этой ссылке stackoverflow.com/questions/7599689/seo -url-rewriting-asp-net - person Jomy John; 12.10.2012