Что означает шаблон = "." на предварительное условие свойства IIS Url Rewrite? - PullRequest
2 голосов
/ 06 апреля 2020

Я видел много примеров перезаписи URL IIS:

<!-- reference: https://im5tu.io/article/2017/06/ensuring-samesite-cookies-with-url-rewrite/ -->
<rewrite>
  <outboundRules> 
    <rule name="Ensure samesite Cookies" preCondition="Missing samesite cookie">
      <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
      <action type="Rewrite" value="{R:0}; SameSite=strict" />
    </rule>
    <preConditions>
      <preCondition name="Missing samesite cookie">
        <!-- Dont remove the first line here, it does do stuff! -->
        <add input="{RESPONSE_Set_Cookie}" pattern="." />
        <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=strict" negate="true" />
      </preCondition>
    </preconditions>
  </outboundRules>
</rewrite>

Кто-нибудь знает, зачем нужна строка <add input="{RESPONSE_Set_Cookie}" pattern="." />?

Я пытался выполнить поиск в Google, но не нашел ответить.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Это регулярное выражение.

В регулярных выражениях . соответствует любому отдельному символу. Но одно это не очень хорошо объясняет ситуацию. Важно понимать, что пустая строка будет НЕ соответствовать, потому что нет символов. Что-нибудь еще - что-нибудь вообще, независимо от того, как долго - WILL совпадение, потому что обработка остановится, как только совпадение будет подтверждено первым символом.

Другими словами, это выражение проверяет действительно ли значение имеет повар ie.

1 голос
/ 06 апреля 2020

Правило выполняется только в том случае, если оно соответствует предварительным условиям.

«Шаблон» является регулярным выражением, и . соответствует любому символу.
В этом случае, по сути, говорится «соответствует, если у повара ie есть значение».

Строка под ней отменяет выполнение правила, если повар ie уже имеет значение, которое будет добавлено.
В противном случае при каждом запуске правила вы добавляете текст снова.

Относительно того, почему это необходимо, отправка пустого повара ie должна удалить его.
В этом случае он будет гарантировать, что внутри повара действительно есть значение ie, прежде чем пытаться изменить его с помощью правила. .

Модуль перезаписи - коллекция предварительных условий
Создание исходящих правил для модуля перезаписи URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...