webdevqa.jp.net

IIS 7ポート80のみのURL書き換え

ポート80から入ってくるトラフィックをポート443(https)にリダイレクトする必要があるサイトがあります。 この記事 によると、それは十分に簡単で、機能します。ただし、私の問題は、これが負荷分散された環境であるということです。ファイアウォールの背後にある非標準のポートを開いて、サーバーがロードバランサーから離れているときに、コードをプッシュして、 http:// myip:XXXX を使用して非標準のhttp経由でテストできるようにします。 -httpsを強制しない標準ポート。

記事で使用されているルールはこれです

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
    <conditions>
      <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_Host}/{R:1}" />
</rule>

これを微調整して、ポート80にのみリダイレクトする(またはテストポートにリダイレクトしない)にはどうすればよいですか?

2
Josh

SERVER_PORT変数の否定条件を使用して、特定のポートに対してこれと同じルールをオフにしました( docs )。ポートXXXXの場合:

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
    <conditions>
      <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      <add input="{SERVER_PORT}" pattern="XXXX" negate="true" />
    </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_Host}/{R:1}" />
</rule>
1
Ian Grainger

Web.configファイルは、どのポートにアクセスしたかに関係なく、サイト中心(つまり、それが置かれているディレクトリに対してディレクトリ中心)です。

秘訣(そして私はポートに関してこれを行ったことがない)は、:80で終わるURLリクエストに一致するようにURL一致ルールを変更することです。私の最初の推測では、それを(.*:80)に変更するだけでうまくいくかもしれません。

0