Как переписать путь с помощью пользовательского HttpHandler - PullRequest
1 голос
/ 14 апреля 2010

Я пишу мультитенантное приложение, которое будет получать запросы типа http://www.tenant1.com/content/images/logo.gif и http://www.anothertenant.com/content/images/logo.gif. Я хочу, чтобы запросы действительно отображались в папку /content/tenant1/images/logo.gif и /content/anothertenant/images/logo.gif

Я использую asp.net Mvc 2, так что я уверен, что, возможно, есть способ настроить маршрут для обработки этого или пользовательского обработчика маршрута? Есть предложения?

Спасибо!

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Я создал пользовательский модуль HttpModule, который подключается к событию BeginRequest, а затем проверяет, какой путь затем вызывается Context.RewritePath

0 голосов
/ 14 апреля 2010

Если я правильно понимаю, потому что это переадресация URL, я не знаю, что MVC 2 маршрутизация обрабатывает это. Вам нужна маршрутизация IIS, которая зависит от вашей версии. Для IIS 6 есть набор ресурсов IIS, который может обрабатывать такие запросы, или есть ISAPI_REWRITE helicontech.com или переписывающее устройство Ionic на iirf.codeplex.com. IIS 7 также имеет надстройку MS для маршрутизации URL, как я слышал, в качестве отдельной загрузки.

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

...