Можно ли сделать условие в правиле перезаписи URL, которое работает только для части пользователей - PullRequest
0 голосов
/ 14 января 2019

У меня есть сайт ASP.NET, размещенный на IIS. Я использую прокси-запрос маршрутизации приложений и правила перезаписи URL для некоторых страниц.

Я добавляю правило перезаписи к запросам прокси от http://example.com/my-url/ до http://other -server / my-url / .

<rule name="Reverse Proxy" stopProcessing="true">
    <match url="^my-url/.*" />       
    <action type="Rewrite" url="http://other-server/{R:0}" />
</rule>

Проблема в том, что я хочу реализовать условие, которое переписывает эту страницу не для всех пользователей, а только для 10% или какой-либо другой части пользователей.

Для каждого пользователя результат открытия страницы должен быть одинаковым.

<rule name="Reverse Proxy" stopProcessing="true">
    <match url="^my-url/.*" />
        <conditions>
            <add input="Is it possible to write a rule that works only for 10% users?"  />
        </conditions>
    <action type="Rewrite" url="http://other-server/{R:0}" />
</rule>

Возможно ли это?

1 Ответ

0 голосов
/ 15 января 2019

Согласно вашему описанию, я предлагаю вам попробовать написать логику в кодах для хранения некоторых специальных данных в файле cookie http, таких как "role = roleA", затем вы можете попытаться записать роль перезаписи URL в соответствии с httpcookie. состояние.

Как показано ниже:

GET http://aaaaaaa.com/test.aspx HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0
Host: myserver.com
Cookie: role=roleA

Правило перезаписи URL:

<rule name="Reverse Proxy" stopProcessing="true">
<match url="^my-url/.*" />
<conditions>
   <add input="{HTTP_COOKIE}" pattern="rule=ruleA" />
</conditions>
<action type="Rewrite" url="http://other-server/{R:0}" />
</rule>
...