web-dev-qa-db-ja.com

同じサーバーにリダイレクトするためのURL書き換えとARRの使用

シナリオ:2つの異なるアドレスで単一のサイトを実行しているWebサーバー:

  • www.mysite.com(通常のサイト)
  • ws1.mysite.com(Webサービス)

どちらもHTTPS経由でアクセスでき、どちらも同じアプリケーションで実行されます(Webサービス呼び出しであるか、通常のwww呼び出しがプログラムで処理されるかは関係ありません)。

そのwwwサイトに、Javascriptを介してws1サイトのWebサービスを呼び出すWebページがあります。これは技術的にはCORSコールです。ただし、下位互換性のために、呼び出しを非CORSにします。これを行う最良の方法は、URL書き換えルールを作成して、カスタムアドレス(www.mysite.com/ws1/など)をWebサービスの場所(ws1.mysite.com)にフォークし、ブラウザーがこれを認識しないようにすることです。 CORSです(最終的には「クロスオリジン」ではないため)。

そのため、サイトで次のルールを設定しました。

<rewrite>
    <rules>
        <remove name="WS1-Inbound" />
        <rule name="WS1-Inbound" enabled="false">
            <match url="^ws1/(.*)" />
            <conditions />
            <serverVariables />
            <action type="Rewrite" url="https://ws1-mysite.com/{R:1}" logRewrittenUrl="true" />
        </rule>
    </rules>
    <outboundRules>
        <remove name="WS1-Outbound" />
        <rule name="WS1-Outbound" enabled="false">
            <match filterByTags="None" pattern="^https://ws1-mysite.com/(.*)" />
            <conditions />
            <action type="Rewrite" value="ws1/{R:1}" />
        </rule>
    </outboundRules>
</rewrite>

これは404.4を返します。ああ、ARRをオンにすると、502.3になります。

インバウンドルールは正常に適用され、アウトバウンドルールに到達することはありません。

私は:

  1. この状況でARRをオンにする必要がありますか?
  2. 特別な方法でSSLを処理する必要がありますか?私はそれを通過する必要があります。
1
MPelletier

この場合、IISで構成されたHTTPリダイレクト命令が干渉していました。

編集:

IIS ManagerのWebサイトノードで、HTTPリダイレクトを構成しました。[この宛先に要求をリダイレクトする]チェックボックスをオンにして、 " https://www.thisismysite .com "(マイナス"これは "。フォーマットに感謝します...)アドレスとして。以下の[リダイレクト動作]で、[すべてのリクエストを(宛先に対してではなく)正確な宛先にリダイレクトします。"ステータスコードが選択されました「見つかった(302)」でした。

「リクエストをこの宛先にリダイレクトする」のチェックを外しました。私はまだそれが実際にどのように物事を修正したかを理解しようとしています。

0
MPelletier