Здесь у нас есть веб-серверы за маршрутизатором - один IIS и один Tomcat (на разных машинах / IP-адресах). Домен указывает на внешний IP-адрес, который перенаправляется в IIS (например, внутренний IP-адрес 192.168.1.10). Я пытаюсь сделать следующее: когда вводится [www.] Ourdomain.com, должен быть загружен веб-сайт по умолчанию в IIS (эта часть в порядке), но когда вводится test.ourdomain.com, я хочу перенаправить этот запрос к другому веб-серверу (например, 192.168.1.11). Я создал "тестовый" сайт в IIS, и он отображается при вводе test.ourdomain.com. Затем я попытался перенаправить его по следующему правилу: Запрошенный URL соответствует шаблону: * (с использованием подстановочных знаков) Условие: {HTTP_HOST} соответствует test.ourdomain.com Тип действия: Переписать Перезаписать URL: http://192.168.1.11/{R: 0}, но когда я пытаюсь загрузить test.ourdomain.com, я получаю страницу с ошибкой 404 IIS. Явно ошибаюсь :-) Как сделать такой редирект?
Перезапись должна выполняться по относительному пути на диске на том же веб-сайте. Это то, что вызывает ошибку 404 в вашем случае.
Перенаправление отправит перенаправление на стороне клиента, но это не сработает, поскольку 192.168.1.11 - это внутренний IP-адрес, к которому нельзя получить доступ публично.
Что вам нужно, так это ARR: http://www.iis.net/expand/ApplicationRequestRouting. Это обратный прокси-сервер, который принимает публичный запрос и перенаправляет его на внутренний сервер. Это посредник между клиентом и внутренним сервером. Он использует IIS и URL Rewrite, так что вы уже прошли большую часть пути.