Назад | Перейти на главную страницу

Как перенаправить определенный URL-адрес с определенными переменными в iis

Идея состоит в том, чтобы добавить правило в мой iis (версия 7) для перенаправления этого

http://www.mydomain.com/folder/Default.aspx?&variable1=eeee&variable2=aaa

кому:

http://www.mydomain.com/folder/Default.aspx?&variable1=ffff&variable2=gggg

Но это должно быть только с этим конкретным URL-адресом, и все URL-адреса должны поддерживать одно и то же.

Я прочитал эту статью http://blogs.iis.net/bills/archive/2008/05/31/urlrewrite-module-for-iis7.aspx но предназначен для шаблонов и всех URL-адресов, и это конкретный URL-адрес

Спасибо!

Попробуй это:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="MyRule" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="^folder/Default.aspx$" />
          <action 
              type="Redirect" 
              url="folder/Default.aspx?&amp;variable1=ffff&amp;variable2=gggg" 
              appendQueryString="false" 
              redirectType="Found" /> 

          <conditions logicalGrouping="MatchAny">
            <add input="{QUERY_STRING}" 
                 pattern="^&amp;variable1=eeee&amp;variable2=aaa$" />

            <add input="{QUERY_STRING}" 
                 pattern="^variable1=eeee&amp;variable2=aaa$" />
          </conditions>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Установить redirectType атрибут в <action> элемент к одному из:

  • Permanent для 301 Permanent перенаправить
  • Found для 302 Found перенаправить

Это покрывает возможность того, что строка запроса:

&variable1=eeee&variable2=aaa - согласно вашему примеру с ведущим амперсандом

или с ведущим амперсандом:

variable1=eeee&variable2=aaa

Если вам просто нужна прямая перезапись без перенаправления, измените <action> элемент в:

<action type="Rewrite" 
        url="folder/Default.aspx?&amp;variable1=ffff&amp;variable2=gggg" 
        appendQueryString="false" />