2

現在、使用しているドメインに限定して、web.config で htttp から https へのリダイレクトを設定しようとしています。しかし、それは機能していません。

<rewrite>
        <rules>
            <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                <match url="^(?:http(?:s)?:\/\/)?(?:[^\\.]+\.)?mysite\.com(\/.*)?$" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions>
                <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
            </rule>
        </rules>
    </rewrite>

このルールは、正規表現エディターで正常に機能します。しかし、ウェブサーバー上ではありません。http://rubular.com/r/3NQTozcigZ

^(?:http(?:s)?:\/\/)?(?:[^\\.]+\.)?mysite\.com(\/.*)?$

failedreqlogfiles を見ると、pattern_match は false です。洞察はありますか?

さらにテストを行った後、これが機能することがわかりました。

http://sub.site.com/

しかし、これはうまくいきません。

http://sub.site.com/Account/Logon
4

2 に答える 2

1

正規表現が必要ですか?すべてのトラフィックを HTTPS にリダイレクトするだけの場合は、次のように動作するはずです。

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
   <conditions>
      <add input="{HTTPS}" pattern="off" ignoreCase="true" />
   </conditions>

   <action 
      type="Redirect" 
      redirectType="Permanent" 
      url="https://{HTTP_HOST}{REQUEST_URI}" 
      appendQueryString="false" 
   />
</rule>

レスポンスは一般的に SEO に適しているため、 のredirectType="Permanent"代わりに使用する傾向があります。"Found"HTTP 301

サイトを永続的に HTTPS に移行する場合はStrict-Transport-Securityヘッダーの送信も検討することをお勧めします。これにより、最新のブラウザーが安全でない接続を介してサイトを要求することがなくなります。

于 2013-06-06T18:53:04.217 に答える
1

ここで使用されるパターンurlは、要求されたパス (URL ではなくパスのみ) と再度一致するためだけに使用されます。

ドメインと https が使用されているかどうかを確認する場合は、次の条件に依存する必要があります。

<rule name="Redirect mysite.com to HTTPS" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTPS}" pattern="^OFF$" />
    <add input="{HTTP_HOST}" pattern="mysite\.com$" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
</rule>

logicalGrouping="MatchAll"このルールは、任意のパス ( .*)で両方の条件が真であることを確認します (これがここでの目的です)。

  • リクエストは HTTPS を使用していませんでした
  • リクエストされたドメインは次で終わりますmysite.com

参照用: http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Accessing_URL_Parts_from_a_Rewrite_Rule

于 2013-06-08T03:00:58.147 に答える