Я работаю на веб-сайте, который использует функцию перезаписи URL-адресов IIS 7, чтобы сделать постоянную переадресацию с example.com на www.example.com, а также переписывать схожих доменных имен на "главный", например от www.examples.com до www.example.com.
Это правило перезаписи - показано ниже - хорошо работает уже некоторое время. Тем не менее, мы недавно добавили поддержку HTTPS и заметили, что если пользователи перейдут на один из URL-адресов, которые будут переписаны на www.example.com, то HTTPS будет удален. Например, если пользователь посещает https://example.com, они перенаправляются на http://www.example.com, тогда как мы хотели бы, чтобы они были отправлены на https://www.example.com.
Здесь приведенное правило перезаписи (в Web.config):
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^example\.com$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?example\.net$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?example\.info$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?examples\.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>
Как вы можете видеть, атрибут url элемента действия указывает прямо на http://, поэтому я понимаю, почему https://example.com перенаправляется http://www.example.com. Мой вопрос: как мне это исправить? Я попытался (наивно) просто отбросить часть http://из атрибута url, но это не сработало.