web-dev-qa-db-ja.com

IIS 8.5 URLの書き換えが機能しない:ルールがまったく影響しない

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再起動を試みましたが、役に立ちません...

何か案は?

2
MrLane

サイトのSSL設定で[SSLが必要]チェックボックスがオンになっていることがわかりました。これがチェックされている場合、クライアントはポート80をまったく通過できず、書き換えは発生しません...

書き換えモジュールを使用している場合は、最初のリクエストがポート80を通過できる必要があるため、[SSLが必要]をオンにすることはできません。

4
MrLane

まあ、私はIIS 8.5でMrLaneと同じケースに遭遇したと思いました。

ポート80でWebサイトを実行していないことを知るのに1日かかりました。

このバインディング(ポート80)を追加するだけで、ルールは期待どおりに機能します。

これがMrLaneのケースの解決に役立つことを願っています。

2
Vu Doan

これは私にとってはうまくいきます:

<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>
0
Papa