web-dev-qa-db-ja.com

IIS URLリポートHTTPをポート付きHTTPSにリライト

私のウェブサイトには2つのバインディングがあります:1000と1443(ポート80/443は同じIIS instance)ポート1000はHTTPポート1443はHTTPS。「htt p:// server:1000」を使用して着信要求をリダイレクトし、 "https://server:1443"。 IIS 7 rewrite module 2.0で遊んでいますが、壁に頭をぶつけています。洞察力は大歓迎です!

ちなみに、以下の書き換え構成は、ポート80にHTTPバインディングがあり、ポート443にHTTPSバインディングがあるサイトではうまく機能しますが、私のポートでは機能しません。

追伸「スパム防止メカニズム」が作動したため、私のURLには意図的にスペースが含まれています。何らかの理由でgoogleログインが機能しなくなったため、OpenIDアカウントを作成する必要がありました(スクリプトが原因ではない可能性があります)。 XMLを適切に表示する方法がわからないので、左角かっこの後にスペースを追加しました。

< ?xml version="1.0" encoding="utf-8"?>
< configuration>
  < system.webServer>
    < rewrite>
      < rules>
        < rule name="HTTP to HTTPS redirect" stopProcessing="true">
          < match url="(.*)" />
          < conditions trackAllCaptures="true">
                        < add input="{HTTPS}" pattern="off" />
          < /conditions>
          < action type="Redirect" redirectType="Found" url="htt ps: // {HTTP_Host}/{R:1}" />
        < /rule>
      < /rules>
    < /rewrite>
  < /system.webServer>
< /configuration>
7
Andy Arismendi

質問は少し前に回答されましたが、これは私が使用した規則です。

<rule name="Redirect to HTTP on different port" enabled="true" stopProcessing="true">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTPS}" pattern="ON"/>
      </conditions>
      <!-- Cannot Use {HTTP_Host} as it contains both the {SERVER_NAME}{SERVER_PORT} -->
      <action type="Redirect" url="http://{SERVER_NAME}:1000{HTTP_URL}" redirectType="Found" appendQueryString="false"/>
    </rule>
8
Julien Jacobs
            <rule name="HTTP to HTTPS on different SSL Port" enabled="true" stopProcessing="true">
                <match url="(.*)" ignoreCase="true" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{HTTPS}" pattern="off" />
                    <add input="{HTTP_Host}" pattern="([^/:]*?):[^/]*?" />
                </conditions>
                <action type="Redirect" url="https://{C:1}:1443/{R:0}" appendQueryString="false" />
            </rule>

これは私の問題を解決しました。

6
Andy Arismendi

これを変更してみてください:

<action type="Redirect" redirectType="Found" url="https://{HTTP_Host}/{R:1}"/>

これに:

<action type="Redirect" redirectType="Found" url="https://{HTTP_Host}:1443/{R:1}"/>
1
Dscoduc