Хорошо, мне интересно, может ли кто-нибудь протянуть руку с регулярным выражением, которое я пытаюсь написать.Regex перенаправить URL-адрес, используя url rewrite
В принципе, я хочу использовать модуль urlrewrite IIS для перенаправления на определенный URL-адрес, если пользователь обращается к URL-адресу на другом сайте. Единственный улов - я должен также захватить немного строки запроса и переместить его в перенаправление.
так вот вход, то URL, который пользователь может получить доступ будет выглядеть так:
https://of.example.com/sfsv3.aspx?waform=pro&language=en
Я хочу, чтобы соответствовать этому URL (или HTTP или HTTPS, чувствительно к регистру), и захват из него также один фрагмент информации, двухбуквенный код языка. то URL я хочу, чтобы перенаправить пользователя выглядит следующим образом:
(где еп заменяется любой я захвачена выше)
Итак, я работаю с модулем перезаписи IIS, и я получил мой ввод данных и регулярное выражение в, до сих пор шаблон регулярного выражения у меня есть это:
https?://of.example.com/sfsv3.aspx\?waform=pro&(language=(..))
поэтому в основном я имею соответствие всю строку, а также группа и подгруппа для языка, и это треска е. в диалоговом окне тестовой модели IIS это работает.
я получаю следующее
{R: 1} язык = еп
{R: 2} ан
большой! поэтому мое правило перезаписи IIS должно выглядеть так, чтобы перенаправить пользователя:
<system.webServer>
<rewrite>
<rules>
<rule name="test" stopProcessing="true" enabled="true">
<match url="https?://of.example.com/sfsv3.aspx\?waform=pro&(language=(..))" ignoreCase="true" />
<action type="Redirect" url="http://www.example.com/ca/{R:2}/ppf" />
</rule>
</rules>
</rewrite>
</system.webServer>
все это кажется мне правильным. однако перенаправление не происходит. у него, похоже, проблема с частью \? (экранированный знак вопроса, чтобы отметить начало строки запроса). если это включено, то перенаправления просто не происходит.
Можете ли вы помочь мне разобраться, как заставить его работать?
Вам нужно просто избежать обратной косой черты? т. е. '.aspx \\? waform' –
нет, обратная косая черта не является буквальной. это только для того, чтобы избежать? это сразу после него. –
Почему не 'https?: //of.example.com/sfsv3.aspx \? Waform = pro & (language = (..))'? –