Спасибо за ваш вклад.
Вот как я решил свою проблему.
<rule name="Remove www" enabled="true">
<match url="(.*)" negate="false"></match>
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:1}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Force HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
Я добавил тег stopProcessing only во второе правило.
Я изменил свою DNS-запись, оставив только следующее правило:
CNAME Record www website.tld.
В IIS я добавил (восстановил) привязки для домена как с www*1016*, так и без него.
Мои рассуждения о том, почему это работает, следующие:
- Сайт может обрабатывать как www.website.tld, так и website.tld.
- Правила перезаписи URL будут обрабатывать перенаправление.
Звонок на сайт может как удалить www as, так и перейти на https. Если разрешить правилу перезаписи выполнять оба действия (отключение stopProcessing ), это может произойти.