Перенаправить URL поддомена на другой поддомен в IIS

StackOverflow https://stackoverflow.com//questions/25082219

Вопрос

Мне нужно перенаправить "поддельный" поддомен на реальный поддомен в 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" />
...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top