2012-11-10 16 views
21

dostałem tę rolę w adresie URL Przepisz .. To przepisać każdy wniosek do witryny przy użyciu HTTP do HTTPSIIS rolę url przepisywania adresów URL, z wyjątkiem niektórych

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

muszę inną rolę lub wyjątek w tej roli do przepisywania lub do tyłu przekierować określone adresy URL do HTTP.

jest to możliwe? Dzięki.

Odpowiedz

54

Możesz dodać wyjątki, dla których nie chcesz, aby wykonać przekierowanie do HTTPS jako dodatkowych warunków (nie równa tej URL), tak:

<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

jej będzie tak >>< add input = "{REQUEST_URI}" negate = "true" pattern = "^/domain.com/directoryname/pageName\.aspx$" ignoreCase = "true" />,? thanks for reply – Mido

+2

Dopóki domain.com to katalog w katalogu głównym twojej strony, a potem tak, to zadziała. Zwróć uwagę, że powinieneś używać 'domain \ .com' w wyrażeniu regularnym, aby dosłownie dopasować domenę.com, w przeciwnym razie kropka sprawi, że wyrażenie regularne przyjmie dowolny znak. Nie możesz tego użyć, jeśli chcesz dopasować do domeny domain.com jako nazwy domeny, ponieważ nazwa domeny nie jest zawarta w zmiennej '{REQUEST_URI}'. –

+1

Użyłem Kreatora IIS, aby wykluczyć określoną domenę z zapisu adresu URL i okazało się, że utworzyłem następującą linię: w węźle warunku. Natomiast SubStringOfURL jest podciągiem adresu URL, który chcę wykluczyć. –

Powiązane problemy