IIS 8.5でRewriteモジュールを使用してhttpからhttpsへのリライトを設定しようとしています。絶対に私が試したものは何も影響しません。URLは次の形式です http: //users-dev.somedomain.com 。現在web.configに作成されているルールは次のとおりです。
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_Host}/{R:1}" />
</rule>
</rules>
</rewrite>
それ以来、多くのバリエーションを試してきました。以前にURL書き換えをいじくり回して、さまざまなルールが有効になるのを確認できましたが、現在は何も影響を与えていないようです... IISで問題が発生しているようです。私もIIS再起動を試みましたが、役に立ちません...
何か案は?
サイトのSSL設定で[SSLが必要]チェックボックスがオンになっていることがわかりました。これがチェックされている場合、クライアントはポート80をまったく通過できず、書き換えは発生しません...
書き換えモジュールを使用している場合は、最初のリクエストがポート80を通過できる必要があるため、[SSLが必要]をオンにすることはできません。
まあ、私はIIS 8.5でMrLaneと同じケースに遭遇したと思いました。
ポート80でWebサイトを実行していないことを知るのに1日かかりました。
このバインディング(ポート80)を追加するだけで、ルールは期待どおりに機能します。
これがMrLaneのケースの解決に役立つことを願っています。
これは私にとってはうまくいきます:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_Host}{REQUEST_URI}" />
</rule>