URL Rewrite some.domain.com to domain.com/some

Как в IIS прописать правило URL Rewrite для перенаправления (rewrite) some.domain.com в domain.com/some?
Решение:

<rule name="CName to URL" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(?!www)(.*)\.domain\.com$" />
    </conditions>
    <action type="Redirect" url="http://domain.com/{C:1}/{R:0}" />
</rule>

Этим правилом мы перенаправляем http://some.domain.com на http://domain.com/some. Оно так же поддерживает запросы, например, http://some.domain.com/aboutus?more=info перенаправит на http://domain.com/some/aboutus?more=info.

То же самое можно сделать применив перезапись (rewrite):

<rule name="CName to URL - Rewrite" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(?!www)(.*)\.domain\.com$" />
    </conditions>
    <action type="Rewrite" url="/{C:1}/{R:0}" />
</rule>

Для посетителя запрос будет выглядеть как http://some.domain.com/aboutus/, а для сервера это будет запрос в папку /some/aboutus/.

Поделиться
Отправить
2014   iis   web   windows