web-dev-qa-db-ja.com

書き換えルールエラー:HTTPエラー500.50-URL書き換えモジュールエラー。 「https://abc.com/{R:1}」という表現は展開できません

誰かが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}"は展開できません。

どうすればこれを解決できますか?私は完全に混乱しています。

17
TCM

一致はゼロベースです。

<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>
19
SouthShoreAK