Могу ли я узнать, как вы проверяли заголовок HOST?
Рекомендуется проверять переменную {HTTP_HOST} вместо непосредственного просмотра заголовка HTTP. Потому что, если вы просмотрите заголовок запроса, вы всегда увидите www.mysite.com.
Вы можете получить переменную запроса {HTTP_HOST} с внутреннего сервера blog.mysite.com.
Однако, еслиВы имеете в виду страницу в blog.mysite.com, также отображаемую {HTTP_HOST} как www.mysite.com. Затем, пожалуйста, убедитесь, что вы установили system.webServer / proxy / preserveHostHeader в true ?
Кстати, поддержка IIS для перезаписи HTTP_HOST вручную, вы можете изменить свое правило следующим образом:
<rule name="blogredirect1" stopProcessing="true">
<match url="^blog(.*)" />
<action type="Rewrite" url="http://blog.example.com{R:1}" />
<serverVariables>
<set name="HTTP_HOST" value="blog.example.com" />
</serverVariables>
</rule>
Пожалуйста, не забудьте разрешить переменную сервера {HTTP_HOST} при перезаписи URL.
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/setting-http-request-headers-and-iis-server-variables
Вы также можете установить это в разделе applicationhost.config <location path="sitename">
.
<location path="Default Web Site">
<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="HTTP_HOST" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</location>