Мой вопрос похож на Перенаправить субдомен на субдомен в новом домене за исключением того, что я использую 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}, которая позволяет мне поддерживать мой субдомен во время перенаправления и является ответом на проблему.