Как узнать исходный URL-адрес после перезаписи URL-адреса?

У меня есть правила перезаписи URL-адресов, которые перенаправляют www.domain2.com в подпапку в корне domain1.com (назовем эту папку подпроектом). В моем контроллере мне нужно создать URL-адрес исходного немодифицированного пути, но свойства Request.Url (например, AbsoluteUri или LocalPath) всегда содержат подпапку подпроекта.

Другими словами, если пользователь набрал:

www.domain2.com/controller/action

urlrewrite делает это:

www.domain1.com/subproject/controller/action

и я хочу восстановить исходный URL:

www.domain2.com/controller/action

Я мог бы жестко закодировать удаление подпроекта из URL и начать URL с домена 2, но мне нужен общий фрагмент кода, потому что это реконструкция URL будет в многоразовая библиотека. domain2 может быть в настройках моего приложения, но как насчет подпапки?

Для справки, вот правило перезаписи:

<rewrite>
    <rules>
        <rule name="Redirect to subproject">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^(www.)?domain2.com" />
                <add input="{PATH_INFO}" pattern="^/subproject/" negate="true" />
            </conditions>
            <action type="Rewrite" url="\subproject\{R:0}" />
        </rule>
    </rules>
</rewrite>

Спасибо

6
задан Nicolas Cadilhac 21 October 2010 в 20:30
поделиться