2

だから私は以下を使って書き直そうとしています:

<rules>
  <rule name="HttpToHttps" stopProcessing="true"/>
    <match url="(.*)"/>
    <conditions>
      <add input="{HTTPS}" pattern="off" ignoreCase="true"/>
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{URL}"/>
  </rule>
<rules>

2つの環境では、これは本来のようにリダイレクトします。3番目の環境では、機能しません。フィドラーログを見ると、完全なURLのhttp呼び出しが表示されるという意味では機能しません。httpsにリダイレクトすると、HTTP_HOST以降のすべてが削除されます。

したがって、次のURLを使用します。

nonsecure://www.mysite.com/page.aspx?var1 = 1&var2 = 2

2つの環境では、

secure://www.mysite.com/page.aspx?var1 = 1&var2 = 2

3番目では次のようになります。

secure://www.mysite.com

https:// {HTTP_HOST} {HTTP_URL}として書き直してみたところ、最初の2つの環境で{URL}が2倍になりました。

secure://www.mysite.com/page.aspx?var1 = 1&var2 = 2&var1 = 1&var2 = 2

私はweb.configsの経験があまりなく、少し学習しているので、ここで何が起こっているのかについて誰かが何か意見を持っているなら、それは大いにありがたいです。何かに関係がある場合、3番目の環境は負荷分散された2台のサーバー上にあります。

4

1 に答える 1

6

RuslanyのブログにはIISURLRewriteの例がいくつかありますが、HTTPからHTTPSへの例はその1つです。

<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}" redirectType="Permanent" />
</rule>

詳細については、 http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/を参照してください。

于 2013-02-17T20:21:17.050 に答える