Перенаправить URL поддомена на другой поддомен в IIS
-
02-01-2020 - |
Вопрос
Мне нужно перенаправить "поддельный" поддомен на реальный поддомен в IIS 7.5.Причина в том, что отдел маркетинга не хочет использовать фактический адрес веб-сайта в печатных материалах.
Фактический URL-адрес сайта:
reporting.usapartners.com
Отдел маркетинга хочет, чтобы report.usapartners.com (подделка) для перенаправить на reporting.usapartners.com (настоящий)
Опять же, report.usapartners.com не существует, только reporting.usapartners.com существует
Вот что я попробовал
Я добавил привязку в IIS для сайта reporting.usapartners.com.Я добавил report.usapartners.com в качестве имени хоста и использовал reporting.usapartners.com IP-адрес
Затем я зашел в reporting.usapartners.com web.config и добавил это:
<rewrite>
<rules>
<rule name="report" stopProcessing="true">
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="report.usapartners.com" negate="false" />
</conditions>
<action type="Redirect" url="http://reporting.usapartners.com" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Похоже, что мое решение создает псевдоним, на который нельзя перенаправить.
Правильно ли я вообще подхожу к этой проблеме?Кажется, что это должна быть простая проблема для решения, но, возможно, нет?Любые идеи приветствуются и ценятся.
Спасибо
Решение
Я думаю, вам нужно создать отдельный сайт с привязками к хостам для report.usapartners.com
(поддельный сайт) в IIS.Это будет сайт-заглушка (ему все равно понадобится путь на диске, но у него будет только web.config
там), в котором просто будет размещено правило перенаправления.
Теперь нажмите на HTTP Redirect
для этого сайта в IIS и отметьте галочкой Redirect requests to this destination
и положил http://reporting.usapartners.com
в текстовом поле.Затем отметьте галочкой Redirect all requests to exact destination (instead of relative to destination)
, не ставьте галочку напротив следующего пункта, а затем выберите Код состояния Permanent (301)
.
Если вы хотите, чтобы он перенаправлял и сохранял подкаталоги и / или строку запроса, то вы можете изменить содержимое текстового поля на http://reporting.usapartners.com$S$Q
.Обратите внимание, что в этом случае нет завершающей косой черты.Тот Самый $S
сохраняет подкаталоги и $Q
сохраняет строку запроса.
Другие советы
Ваше правило вызывает цикл перенаправления.
Наблюдайте за тем, что делает ваше правило:
- Сопоставьте любой заданный URL (сюда входят "/", "/ что-то", "/something/another.html" и т.д.)
- Если имя хоста НЕ ЯВЛЯЕТСЯ "report.usapartners.com"
- Постоянно перенаправлять запрос на "http://reporting.usapartners.com"
Итак, как вы видите, как только пользователь перенаправляется на поддомен reporting, он снова перенаправляется на reporting, потому что имя хоста не "report.usapartners.com".
Ключевым моментом здесь является negate="true"
атрибут в зависимости от условия правила.Удалите его или установите значение false, и все готово.
Редактировать:
Вы почти на месте.
Реальным решением было бы изменить имя хоста в правиле на желаемый хост, сохранив значение negate true, чтобы ваше правило соответствовало:
- Сопоставьте любой заданный URL (сюда входят "/", "/ что-то", "/something/another.html" и т.д.)
- Если имя хоста НЕ ЯВЛЯЕТСЯ "reporting.usapartners.com"
- Постоянно перенаправлять запрос на "http://reporting.usapartners.com"
Код:
...
<add input="{HTTP_HOST}" pattern="reporting.usapartners.com" negate="true" />
...