2015-08-14 6 views
6

Kuralın koşullar bölümünde {HTTP_COOKIE} değişkenini kullanarak bir çerezden değerler temel alarak bir URL'yi yeniden yazabileceğimi biliyorum. Bu kural ServerProxy adında bir çerez alır ve bu sunucu URL'sine yeniden yazılır. ServerProxy çerez yoktur veya ayarlanmadanARR'yi kullanma Bir çerez eksik olduğunda bir URL'yi nasıl yeniden yazarsınız?

<rule name="SendTrafficToServerProxyCookieValue" stopProcessing="true"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="http://{C:1}/{R:0}" /> 
    <conditions> 
     <add input="{HTTP_COOKIE}" pattern="ServerProxy=(.*)" /> 
    </conditions> 
</rule> 

ben authenticate.app denilen bir kimlik doğrulama sunucusuna trafiği yönlendirmek istiyoruz. Bunu yapacak bir yeniden yazma kuralı nasıl yazarım?

cevap

5

bu deneyin:

* çerez boş olmadığından emin olmak için + değiştirilmiştir Not olduğunu
<rule name="SendTrafficToServerProxyCookieValue" stopProcessing="true"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="http://{C:1}/{R:0}" /> 
    <conditions> 
     <add input="{HTTP_COOKIE}" pattern="ServerProxy=(.+)" /> 
    </conditions> 
</rule> 
<rule name="DoAuthRewrite" stopProcessing="true"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="SOMETHING_ELSE" /> 
    <conditions> 
     <add input="{HTTP_COOKIE}" pattern="ServerProxy=(.+)" negate="true" /> 
    </conditions> 
</rule> 

. Negatif basitçe durumu çevirir, bu yüzden boş ya da olmayan yapar.

+0

Harika çalışıyor, teşekkürler. –

İlgili konular