web-dev-qa-db-ja.com

IIS一部のURLを除くurl rewriteロール

HTTPからHTTPSを使用してサイトへのすべてのリクエストを書き換えるURL書き換えでこのルールを取得しました

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

特定のURLをHTTPに書き戻すまたはリダイレクトするには、このロールに別のルールまたは例外が必要です。

それは可能ですか?

33
Mido

次のように、HTTPSへのリダイレクトを実行したくない例外を追加条件(そのURLと等しくない)として追加できます。

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well-too\.aspx$" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_Host}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
77