Условное перенаправление строки запроса - PullRequest
1 голос
/ 01 апреля 2011

Я пытаюсь перенаправить запросы, содержащие строку запроса, на другое доменное имя.

У меня короткий URL, http://short.url, и я хочу перенаправить http://short.url? Привет на http://long.url/?hello. Поэтому строка запроса должна храниться перенаправления. Чтобы усложнить ситуацию, я бы хотел переопределить http://short.url? Привет, привет2 на http://long.url/advanced.aspx/?hello,hello2.

Вот правило, которое у меня есть сейчас (касается только первой части моего вопроса)

<rewrite>
    <rules>
        <rule name="test" patternSyntax="ECMAScript" stopProcessing="true">
            <match url="~/?\w+" />
            <action type="Redirect" url="http://long.url/?{R:0}" redirectType="Found" />
        </rule>
    </rules>
</rewrite>

Однако я не вижу никаких перенаправлений. Кроме того, есть ли лучший способ сделать это? По сути, я просто хочу настроить ярлык для передачи запросов на сайт. Они не предназначены для постоянного использования, поэтому я использую redirectType="Found".

1 Ответ

1 голос
/ 02 апреля 2011

Если кто-то хочет это сделать:

<rules>
    <rule name="Basic" patternSyntax="ECMAScript" stopProcessing="true">
        <match url="\w*" />
        <action type="Redirect" url="http://longurl.com" redirectType="Found" />
        <conditions>
            <add input="{QUERY_STRING}" pattern="\w+" />
            <add input="{QUERY_STRING}" pattern="\," negate="true" />
        </conditions>
    </rule>
    <rule name="Advanced" patternSyntax="ECMAScript" stopProcessing="true">
        <match url="\w*" />
        <action type="Redirect" url="http://longurl.com/advanced.aspx" redirectType="Found" />
        <conditions>
            <add input="{QUERY_STRING}" pattern="^\w+(?=\,)" />
        </conditions>
    </rule>
</rules>
...