Все,
Я потратил почти день, пытаясь понять это. Я беспомощен после всех поисков и хочу обратиться к сообществу.
Я хочу перенаправить любой трафик на свой веб-сайт на основе следующего правила
https: // www. test.com/abc -> https://www.test.com/test1.aspx?c=abc
https://www.test.com/def -> https://www.test.com/test1.aspx?c=def
Подпапку необходимо передать как строку запроса
Я пробовал это, но похоже, что это не работает.
<rule name="Reditect1" stopProcessing="true">
<match url="^(.*)test.com/(.*)" />
<conditions>
<add input="{R:2}" pattern="^[a-zA-Z0-9_]*$" />
</conditions>
<action type="Redirect" url="/test.aspx?c={C:0}" appendQueryString="true" />
</rule>
Приветствуется любая помощь
Итак, после дополнительных исследований и проб и ошибок я смог это выяснить. Вот как я его настроил сейчас.
<rule name="Redirect1" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{R:0}" pattern="^(?!\s*$).+$"/>
<add input="{R:0}" pattern="^[a-zA-Z0-9_]*$" />
</conditions>
<action type="Redirect" url="/test1.aspx?client={C:0}" appendQueryString="true" />
</rule>
ПРИМЕЧАНИЕ
Правило было настроено на уровне сайта, а не на уровне сервера в IIS. Следовательно, сопоставление с образцом игнорировало доменное имя.
^ (. *) Test.com/(.*) - попытка сопоставить test.com после действительного квалифицированного имени домена. Таким образом, www.test.com/test.com/abc будет удовлетворять условию, а не www.test.com/abc[12104ptingExplanation[12105 sizes Правило соответствует любому URL-адресу, который входит - Pattern (. *)
Первое условие гарантирует, что все, что следует за квалифицированным доменным именем, содержит хотя бы один непробельный символ.
Второе условие гарантирует, что в анализируемой части нет специальных символов. Это было моим требованием.