2014-10-06 22 views
10

Sto provando a scrivere una regola di riscrittura degli URL per forzare una connessione HTTPS. Ciò dovrebbe sempre verificarsi tranne quando una richiesta utilizza localhost (ad esempio http://localhost/mysite).URL IIS Riscrivi la regola https ignorando localhost

La regola è configurata come segue:

<rule name="Redirect to https" enabled="true" stopProcessing="true"> 
     <match url="(.*)" negate="false" /> 
     <conditions trackAllCaptures="false"> 
      <add input="{HTTPS}" pattern="^OFF$" /> 
      <add input="{URL}" pattern="localhost" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 

Ho anche cercato di usare^localhost e^localhost /(.*) come un modello per la condizione URL senza alcun aiuto. Qualcuno ha un'idea del motivo per cui questo non funziona e quale dovrebbe essere una soluzione per questo problema?

+0

Quale versione di IIS? Potresti voler aggiornare la tua domanda con quella. – kkuilla

+0

In questo momento lo sto usando su IIS8. Ma hai già fornito la soluzione. Molte grazie. –

risposta

22

Il codice dovrebbe essere simile a questo, invece

<rule name="Redirect to https" enabled="true" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{HTTPS}" pattern="off" /> 
     <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 
+1

Tu sei l'uomo! Molte grazie! –

Problemi correlati