2015-08-14 2 views
6

Я знаю, что могу переписать URL-адрес на основе значений из файла cookie, используя переменную {HTTP_COOKIE} в части правил правила. Это правило захватывает файл cookie с именем ServerProxy и переписывает этот URL-адрес сервера.Использование ARR, как вы переписываете URL-адрес, если файл cookie отсутствует?

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

Если ServerProxy печенье отсутствует или отключенное Я хотел бы, чтобы направить трафик на сервер аутентификации называется authenticate.app. Как написать правило перезаписи, которое это сделает?

ответ

5

Попробуйте это:

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

Обратите внимание, что * было изменено на +, чтобы убедиться, что печенье не является пустым. Отрицание просто переворачивает условие, поэтому делает его пустым или несуществующим.

+0

Отлично работает, спасибо. –