HTTP リクエストが自動的に HTTPS にリダイレクトされるように、Web ホストに Web サイトに SSL を設定するように依頼しました。
これは完了したと言われていますが、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>