Назад | Перейти на главную страницу

Как выполнить перенаправление HTTP с сохранением поддомена с помощью IIS 7

Мой вопрос похож на Перенаправить субдомен на субдомен в новом домене за исключением того, что я использую IIS 7. Это приложение ASP.NET framework 2.0.

У меня есть URL-адрес cust1.olddomain.com, и мне нужно перенаправить на cust1.newdomain.com.

Мне нужно поддерживать поддомен, но мне нужно изменить домен, чтобы пользователь никогда не видел olddomain.com, а у меня есть X поддоменов cust.

Я могу маршрутизировать все, куда нужно, с помощью DNS, но я не могу понять, как изменить домен, чтобы olddomain.com никогда не отображался. Я надеялся сделать это редиректом 301, но, судя по тому, что я читал до сих пор, не думаю, что это возможно.

Мысли?

Да, я ответил на свой вопрос!

Для IIS 7 вы можете установить Модуль перезаписи URL из установщика веб-платформы MS или загрузите его отдельно. После установки это дает вам возможность mod_rewrite в IIS.

Чтобы решить проблему с перенаправлением, я создал новую запись перенаправления, как показано ниже. Модуль URL Rewrite предоставляет пользовательский интерфейс для создания перенаправления, которое затем записывает запись в файл web.config сайта, как и многие другие модули IIS.

<rewrite>           
        <rules>
            <rule name="RedirectToNewDomain" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                <conditions logicalGrouping="MatchAny">
                    <add input="{HTTP_HOST}" pattern="*.olddomain.com*" />
                </conditions>
                <action type="Redirect" url="http://{C:1}.newdomain.com{C:2}{PATH_INFO}" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>

Что я делаю с этим перенаправлением, так это то, что все URL-адреса включаются в правило с подстановочным знаком url = "*". Затем я условно выполняю сопоставление с образцом на старом домене. Звездочки в условном сопоставлении с шаблоном позволяют мне иметь обратные ссылки на все, что соответствует шаблону, которые я затем вставляю как {C: 1} & {C: 2} в действие перенаправления. Это обратная ссылка {C: 1}, которая позволяет мне поддерживать мой субдомен во время перенаправления и является ответом на проблему.