2012-11-10 18 views
21

私はURL書き換えでこの役割を持って...それは私が戻ったり書き換えるためにこの役割の他の役割または例外を必要HTTP IISのURLリライト役割

HTTPSから
<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にリダイレクトします。

は可能ですか?おかげさまで

答えて

54

あなたはそうのように、あなたは(そのURLに等しくない)余分な条件としてHTTPSへのリダイレクトを実行したくないために例外を追加することができます。<>>

<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> 
+0

そのつもりが、このようなこと返信ありがとうございました – Mido

+2

domain.comが存在していれば、入力を「=」と入力すると「否定」=「真」のパターン=「^/domain.com/directoryname/pageName\.aspx$」ignoreCase = "true" />あなたのウェブサイトのルートディレクトリにあるディレクトリ、それからうまくいくでしょう。正規表現で 'domain \ .com'を使用すると、domain.comと文字通り一致する必要があります。それ以外の場合、ドットは正規表現に任意の文字を受け入れるようにします。ドメイン名が '{REQUEST_URI} '変数に含まれていないため、ドメイン名としてdomain.comと照合する場合は、これを使用できません。 –

+1

IISウィザードを使用してURL書き込みから特定のドメインを除外し、次のような行を作成しました。 条件ノードの 。 SubStringOfURLは除外したいURLのサブストリングですが。 –

関連する問題