IIS 7 Url Rewrite только для порта 80

3704
Captain Cosmodrome

У меня есть сайт, где любой трафик, поступающий на порт 80, должен быть перенаправлен на порт 443 (https). Согласно этой статье, это достаточно просто, и это работает. Однако моя проблема в том, что это среда с балансировкой нагрузки. Я хочу открыть нестандартный порт за моим брандмауэром, чтобы, когда мой сервер отключен от балансировщика нагрузки, я мог нажать свой код и проверить его, используя http: // myip: XXXX через http на нестандартном порту, не вызывая https ,

Правило, используемое в статье это

<rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https:///" /> </rule> 

Как я могу настроить это так, чтобы он только перенаправлял на порт 80 (или не перенаправляет на мой тестовый порт)?

2

2 ответа на вопрос

1
Ian Grainger

Я просто отключил это же правило для определенного порта, используя отрицательное условие для переменной SERVER_PORT ( docs ). Для порта XXXX:

<rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="" pattern="off" ignoreCase="true" /> <add input="" pattern="XXXX" negate="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https:///" /> </rule> 
0
Ƭᴇcʜιᴇ007

Файл web.config ориентирован на сайт (точнее, на каталог, к каталогу, в котором он находится), независимо от того, к какому порту он подключен.

Хитрость (и я никогда не делал этого в отношении портов) состоит в том, чтобы изменить правило соответствия URL-адресов для соответствия запросам URL, которые заканчиваются :80. Мое первоначальное предположение было бы, что изменение его (.*:80)может просто сработать.