0

ユーザーがdomain.comに入ると、https: //www.domain.comである私のアプリケーションにリダイレクトする必要があります。現在は発生しておらず、「この接続は信頼されていません」というページが表示されています。

web.configに次の書き換えタグを追加しました。

        <rewrite>
           <rules>
            <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="SeeOther" />
            </rule>
       </rules>
    </rewrite>

現在、IIS 7.5で、次のように設定されているインバウンドルールを追加しました。

  1. 一致するURL

    要求されたURL:パターンに一致します

    使用:必要な式

    パターン: (。*)

    ケースを無視:チェック済み

  2. 条件

    論理グループ化:すべて一致

    入力:{HTTPS}

    タイプ:パターンに一致

    パターン:^ OFF $

    条件全体でグループを追跡:チェックなし

  3. アクション

    アクションタイプ:リダイレクト

    リダイレクトURL:https:// {HTTP_HOST} / {R:1}

    クエリ文字列の追加:チェック済み

    リダイレクトタイプ:その他(303)を参照

既存の設定に変更を加えることができるかどうか教えてください。

前もって感謝します。

4

1 に答える 1

4

書き換えルールは、同じドメインにリダイレクトしているだけです。したがって、ユーザーが単に入力するとdomain.com(デフォルトで http)、リダイレクトされhttps://domain.comます。SSL 証明書に含まれていないものdomain.comだけが含まれwww.domain.comている場合、ブラウザーは間違った証明書に関する警告を表示します。現在、ほとんどの認証局は、www を含むドメインと含まないドメインの両方で証明書を発行しています (ただし、あなたのドメインはそうではない可能性があります)。

ユーザーが常にhttps://www.domain.com(常に www を使用して) 使用するようにする場合は、次の書き換えルールを使用する必要があります。

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" negate="true" pattern="^ON$" />
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
    </conditions>
    <action type="Redirect" url="https://www.domain.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

SSL を強制www.domain.comし、ホスト ヘッダーとして強制します。そうでない場合は、同じ URL への永続的なリダイレクト (= beter) を発行します。

于 2012-05-04T11:18:40.253 に答える