Переписать правило, используя карту И, отбрасывая определенные параметры - PullRequest
0 голосов
/ 08 июля 2011

Я довольно новичок во всем этом, поэтому, пожалуйста, будьте просты в своих объяснениях.

В месте, где я работаю, только что сменили магазин программного обеспечения, поэтому у меня есть ряд URL-адресов, которые нужно пометить, как Google, люди и т. Д. Продолжитьиспользовать старые ссылки.

Старые ссылки выглядят так: http://mydoman/usedateb.aspx?User_ID=38482&Category_ID=127

Я знаю, как сделать карту перезаписи, чтобы изменить http://mydomain/usedateb.aspx?Category_ID=127 на http://mydomain/hoopy-new-tour-name.aspx

И я знаю, как сделать правило перезаписи, чтобы удалить User_ID = xxx & из URL.

Моя проблема заключается в том, чтобы заставить их обоих работать вместе.Мне нужно извлечь User_ID (так как он назначен произвольно) И отправить его через карту, чтобы перейти к hoopy-new-tour-name.

Я установил правило перезаписи, чтобы удалить пользователя сверхусписка и правила перезаписи карты ниже в списке, но я получаю http://mydomain/usedateb.aspx?User_ID=38482&Category_ID=127

Если это поможет, в моем файле web.config есть такие строки, как

<add key="UseDateB.aspx?Category_ID=127" value="/success.htm" />

для карты и

<rule name="Remove extra parameters - UserID">
      <match url="(.*)User_ID=([0-9]+&amp;)(.*)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="{R:1}{R:3}" appendQueryString="false" />
</rule>

, чтобы убрать нежелательный параметр.

Мне нужна карта, потому что Cat 127 может быть хупи-туром, а 128 - фрудом.Есть список из примерно 500 из них, которые необходимо переназначить, но мы должны получить дополнительный параметр из входящих URL-адресов, чтобы он работал.

Спасибо за помощь!Если я ошибаюсь, пожалуйста, дайте мне знать об этом.

1 Ответ

2 голосов
/ 08 июля 2011

Посмотрите на это:

         <rules>
            <clear />
            <rule name="RedirectToCategory" stopProcessing="true">
                <match url="UseDateB.aspx" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{QUERY_STRING}" pattern="Category_ID=127" />
                </conditions>
                <action type="Redirect" url="http://mydomain/hoopy-new-tour-name.aspx" />
            </rule>
            <rule name="RemoveUserID" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{QUERY_STRING}" pattern="(.*)(User_ID=[0-9]*)(.*)" />
                </conditions>
                <action type="Redirect" url="{R:0}?{C:1}{C:3}" appendQueryString="false" />
            </rule>
        </rules>

Первое правило перенаправляет на основе категории, а второе удаляет User_ID.Попробуйте, и если вы хотите сделать что-то еще, укажите, что это.

...