Правило перезаписи IIS для проверки строки запроса и добавления ее, если ее там нет

Я пытаюсь создать правило перезаписи URL IIS, которое добавляет параметр URL в URL. Параметр url hssc, Таким образом, любой URL, который обрабатывается через сервер, нуждается в этом параметре. Помните, что некоторые URL-адреса уже будут иметь свои собственные параметры, а другие URL-адреса не будут, корневые URL-адреса и т. Д., Иногда потребуется добавить ?hssc=1 или же &hssc= - Итак, если у меня есть URL, который как таковой:

Я также хочу, чтобы URL не был скрыт (как в бэкэнде, переписанном за кулисы). Мне нужно, чтобы URL-адрес отображался в URL-адресе, поэтому, когда пользователи копируют URL-адрес или добавляют его в закладки, параметр присутствует.

Я установил условие, чтобы соответствовать ему \&hssc|\?hssc - теперь мне просто нужен способ написать URL, чтобы он появлялся и сохранял ту часть исходного URL, которая уже есть.

1 ответ

Это должно сделать трюк:

<rule name="Add hssc param" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{QUERY_STRING}" pattern="hssc=1" negate="true" />
    <add input="&amp;{QUERY_STRING}" pattern="^(&amp;.+)|^&amp;$" />
  </conditions>
  <action type="Redirect" url="http://{HTTP_HOST}/{R:0}?hssc=1{C:1}" appendQueryString="false"  />
</rule>

Это всегда будет предшествовать hssc=1 к началу строки запроса, сохраняя при этом остальную часть строки запроса. Это работает для всех ваших примеров. Я предпочел, а не добавлять, но я предполагаю, что это тот же самый конечный результат.

Другие вопросы по тегам