2012-11-10 17 views
21

ho ottenuto questo ruolo nella URL Rewrite .. Che riscrivere ogni richiesta al sito utilizzando HTTP a HTTPSIIS ruolo URL Rewrite, tranne alcuni 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> 

ho bisogno di altro ruolo o eccezione in questo ruolo di riscrivere schiena o reindirizza un URL specifico a HTTP.

è possibile? Grazie.

risposta

54

È possibile aggiungere le eccezioni per le quali non si desidera eseguire il reindirizzamento a HTTPS come condizioni supplementari (non uguale a quella URL), in questo modo:

<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

la sua gonna essere come questo >>< aggiungi input = "{REQUEST_URI}" negate = "true" pattern = "^/domain.com/directoryname/pageName\.aspx$" ignoreCase = "true" />,? grazie per la risposta – Mido

+2

Finché domain.com è una directory nella directory principale del tuo sito web, allora sì, funzionerà. Nota che dovresti usare 'domain \ .com' nell'espressione regolare per far corrispondere letteralmente domain.com altrimenti il ​​punto farà sì che l'espressione regolare accetti qualsiasi carattere lì. Non è possibile utilizzarlo se si intende corrispondere a domain.com come nome di dominio perché il nome di dominio non è incluso nella variabile '{REQUEST_URI}'. –

+1

Ho utilizzato la Creazione guidata IIS per escludere un dominio specifico dalla scrittura dell'URL e ho scoperto di creare una riga come questa: nel nodo condizione. Mentre SubStringOfURL è una sottostringa dell'URL che voglio escludere. –