Я попросил нашего веб-хостинга настроить SSL на нашем веб-сайте, чтобы HTTP-запросы автоматически перенаправлялись на HTTPS.
Они говорят, что это сделано, однако при доступе к сайту через HTTP я теперь получаю:
Response HTTP/1.1 403 Forbidden
HTTPS работает отлично.
Я попросил исправить это, но мне сказали, что это не настройка сервера (которой они управляют) и ее нужно исправить через web.config (к которому у меня есть доступ).
Я безуспешно пытался использовать следующие изменения, чтобы перехватить эту ошибку 403 и перенаправить ее:
<system.web>
<customErrors defaultRedirect="/test.html" mode="On"></customErrors>
</system.web>
<httpErrors errorMode="Custom">
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="/test.html" responseMode="ExecuteURL" />
</httpErrors>
Как решить эту проблему так, чтобы HTTP перенаправлял на HTTPS, что фактически требует этого?
решение1
Оказывается, хостеру сначала пришлось снять флажок «Требовать SSL», после чего я смог перенаправить трафик в web.config через:
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>