誰かがHTTPプロトコルを介してリクエストを送信するたびに、URLを書き換えてHTTPSにします。これはweb.configのコードです:
<rule name="Imported Rule 1-1" enabled="true" stopProcessing="true">
<match url="^(?!https://).*" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{SERVER_PORT}" pattern="80" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="https://abc.com/{R:1}" />
</rule>
ただし、http://を参照すると、IISエラーが表示されます
HTTPエラー500.50-URL書き換えモジュールエラー。表現
"https://abc.com/{R:1}"
は展開できません。
どうすればこれを解決できますか?私は完全に混乱しています。
一致はゼロベースです。
<action type="Rewrite" url="https://abc.com/{R:1}" />
一致が1つしかないため、機能しません。必要なもの:
<action type="Rewrite" url="https://abc.com/{R:0}" />
また、サイトルートの下のパスでのみ照合できるため、これは機能しません。
<match url="^(?!https://).*" ignoreCase="false" />
Sslを確認しているようです。代わりにこれを試してください:
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>